绊脚石乃是进身之阶。

ES两个单词间的距离隔一个 slop设置为1和1以上都可以是吧? 如何实现slop设置为1 查出来的短语中两个单词只隔一个距离呢大佬?

Elasticsearch | 作者 dxyz | 发布于2021年09月13日 | 阅读数:2053

elasticsearch中如果两个单词间的距离隔一个 slop设置为1和1以上都可以是吧? 如何实现slop设置为1 查出来的短语中两个单词只隔一个距离啊?

比如 lung gout age  disease.
这个短语
用   lung   age 查
slop必须只有设置为1能查出来, 设置为2就查不出来这样子怎么实现啊大佬们?
已邀请:

zcc_vv - 95

赞同来自: Charele

1.在must里设置slop是1 查出大于等于1 然后再mustnot 里在写一个一样的 把slop设成2 就把slop大于等于2的去除掉了  剩下的就是1的了吧   2.或者去改下他的代码  加一个自己插件  可以看下searchModule 下的 registerQueryParsers,从这里入手照着他的match_phrase 抄写一个  应该需要改的就是两阶段检验那里

Charele - Cisco4321

赞同来自:

设为2要是能查出来,那这个slop设得还有什么意义啊。

envy666

赞同来自:

interval query

hlc

赞同来自:

看下span系列的查询,有能保证两个查询词的距离的

Charele - Cisco4321

赞同来自:

zcc_vv - 95大佬的理解是对的。
 
用bool可以解决这个问题。
第2个方法,也可以。不过对于这个小要求来说,成本太大

要回复问题请先登录注册