elasticserach 排序

大家遇到过ik分词后,升序和倒序排列不一致的问题吗?比如按照某个field字段排序:升序结果是:A,B,C,D,按理说倒序应该是DCBA,但是中文分词后就不一致了。大家有遇到这个问题吗?
已邀请:

4onni - 老鹰不需要鼓掌,也会继续飞翔

赞同来自: Rubricate

首先,不知道该怎么解释分词字段排序问题,因为好像没有直接按分词字段排序的,我猜可能是用了分词以后产生的词元排序了吧,具体需要查看源码。但是我想解决你的这个问题,可以使用scriptSort,在script里使用_source字段来用原始值排序,这样应该可以解决你的问题

china

赞同来自: medcl

可以考虑设置mapping为not_analyzed

Rubricate - hi

赞同来自:

快跟我默念TF-IDF 和SVM,就是词频权重和空间向量模型。分词之后,就按照分词的打分的结果来排序,当然就不是简单的abcd了,而且空间向量的关系来打分了。


可以看看lucene的打分公式。


我的回答希望对你有帮助。

nodexy - Another developer !

赞同来自:

比如使用JAVA API,如果你
{{{
.addSort("myfield", SortOrder.DESC)
}}}
那么就按照你自己的field排序了。

如果你在所有addSort前
{{{
.addSort(SortBuilders.scoreSort())
}}}
那么,就首先按照默认的打分来排序了,当然前提是记得设置
{{{
setTrackScores(true)
}}}

myworld - 技术宅男

赞同来自:

我现在就是用.addSort("myfield", SortOrder.DESC)自定义排序的,出现的问题就是中文分词问题,貌似升序和倒序的反序不一致

要回复问题请先登录注册