我有点怀疑你在刷屏

关于span查询

Lucene | 作者 Charele | 发布于2024年04月25日 | 阅读数:3888

span查询,实质上不难理解(相对来说)。
不过我刚开始看到的时候,非常非常地蒙,
实在整不明白它到底出来的结果是什么意思。
比如这个问题:
https://elasticsearch.cn/question/10296
 
它的形式是这样的:
span_not(include : span_term,  exclude : span_near)
 
可能Span实际中用得不多,但如果你想知道它的意义的话,
你要么去猜它的意思,要么尝试看代码而理解span查询的意义,这是一个花时间的过程。
   
看ES官网,对Span查询并没有详细地解释,
只给一个查询DSL代码,连示例结果都没有。
 
 网上很多文章,感觉这里是一个很好的参考。
https://blog.csdn.net/weixin_3 ... 28640
 
最后部分,他给出了一个Lucene源码中的masking查询的示例,
没有对这个示例作出解释,包括masking查询的意义,
还有这个slop=-1的意思
1111.png

 
这里的slop=-1,并不是顺序倒过来的意思。
比如  "aaa xxx bbb"
你用Near("aaa", "bbb", 0)查不到,
因为中间隔了一个词, 所以用Near("aaa", "bbb", 1)就可以查到,
但你用Near("bbb", "aaa", -1)并不能查到这个文档
 
另外,图中这个很怪异的查询用法,
在ES中被用在match_phrase_prefix查询当中
已邀请:

Charele - Cisco4321

赞同来自:

https://blog.csdn.net/iteye_14 ... 77730
这里的文章,我感觉他说得不太准确,
1111.png


1 SpanTermQuery没有任何作用?
我的感觉相反,SpanTermQuery是最基础最重要的span查询
 
2 不知道是不是版本原因,
现在版本中,SpanTermQuery和TermQuery一模一样,
如果你分别执行两个查询,结果,打分,完全一样

Charele - Cisco4321

赞同来自:

span,百度一下:
n.跨度,范围;跨距,宽度;<空>翼展;<南非口>很,非常;全长;持续时间;持续时间,时间阶段;拉紧,张紧;指距,一拃宽;一群,一伙;小范围,短距离;<海>跨绳;<数>生成空间;(桥或拱的)墩
 
先说下,ES/Lucene里面这个跨度的意思。
虽然这个描述可能不完整不全面,但是至少经得起推敲的。

要回复问题请先登录注册