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

es使用ik分词查询得分排序问题

Elasticsearch | 作者 luozw19940613 | 发布于2020年09月11日 | 阅读数:4015

场景,使用ik分词设置规则"ik_max_word",查询"少儿培训",两个文档中,其中一个文档里有完全匹配的"少儿培训"四个字,另一个文档中没有完全匹配的,但是有多个位置匹配了"少儿"或"培训",结果是查出来的后者匹配度分值更高,如何让完全匹配的数据分值权重更高,没有完全匹配的再已词频排序
已邀请:

FFFrp

赞同来自:

多个位置的那个Freq高,所以分值高,建议增加一项bool查询里面加一条should查询:match_phrase "少儿培训" boost设置一个值 

pony_maggie - 公众号:犀牛饲养员的技术笔记

赞同来自:

目前ES的默认打分算法是BM25,你的这个需求应该可以通过调整b和k1解决,
 

k1 : This parameter controls how quickly an increase in term frequency results in term-frequency saturation. The default value is 1.2. Lower values result in quicker saturation, and higher values in slower saturation. 

b : This parameter controls how much effect field-length normalization should have. A value of 0.0 disables normalization completely, and a value of 1.0 normalizes fully. The default is 0.75.

guoyanbiao520

赞同来自:

match_phrase 正解,调整词频会影响查询效果

要回复问题请先登录注册