如题,
例如“我喜欢狗”,分词后是“我”,“喜欢”,“狗”
搜索的字段分别是:
field1=“我很喜欢动物,比如狗”
field2=“我喜欢像狗一样的动物”
此时,field2中“我喜欢狗”的位置更靠近一些,因此权重可以设置的大一些。
这里距离的计算可以我们自己来定义,
但是好像无法通过script score之类的来实现,因为无法知道tokens在字段中被匹配到的位置
不知道有没有方法来实现这一类的问题啊?
例如“我喜欢狗”,分词后是“我”,“喜欢”,“狗”
搜索的字段分别是:
field1=“我很喜欢动物,比如狗”
field2=“我喜欢像狗一样的动物”
此时,field2中“我喜欢狗”的位置更靠近一些,因此权重可以设置的大一些。
这里距离的计算可以我们自己来定义,
但是好像无法通过script score之类的来实现,因为无法知道tokens在字段中被匹配到的位置
不知道有没有方法来实现这一类的问题啊?
1 个回复
rochy - rochy_he
赞同来自:
slop 可以简单理解为编辑距离;
如果觉得 matchPhraseQuery 过于严格,可以使用 Dis Max Query 将 matchPhraseQuery 与 matchQuery 结合起来进行搜索
如果一定想自己控制词条距离,可以使用 SpanQuery 进行实现
请参考:https://blog.csdn.net/xifeijia ... 90707
https://www.elastic.co/guide/e ... .html