有个人长的像洋葱,走着走着就哭了…….

IK中文分词匹配,匹配度不符理想值

Elasticsearch | 作者 夏李俊 | 发布于2017年09月13日 | 阅读数:4700

使用IK中文分词匹配,搜索词为"水箱",对应结果有"水箱","水箱护罩","水箱水管","暖风水箱",然后按照匹配度_score排序,有时发现,个别"水箱护罩"的分数高于"水箱",不应该所有的"水箱"的匹配度最高才对么
已邀请:

lz8086 - es小司机

赞同来自:

已经有类似问题了,不过还需要个人理解
https://elasticsearch.cn/question/2275

Cheetah

赞同来自:

lucene打分除开权重主要是3方面,文档频率,长度,文档稀有度
文档频率不说了,你的例子里都一样,文档长度来讲,水箱的分值要高
现在出现"水箱护罩"分值高于“水箱”,那么唯一的因素就是文档稀有度得分低
那么文档稀有度这个如果没有特别指定都是按照分片算的,也就是说你这里可能存在"水箱护罩"所在分片数据"水箱"的稀有度得分很高
 
解决办法的话是将searchtype设置为dfs_query_then_fetch,那么计算文档稀有度的时候就会全局计算,不过肯定性能上就很差,不建议使用

夏李俊

赞同来自:

那请问,使用elastic原生java api时,如何指定query_type?

要回复问题请先登录注册