您当前的位置: 首页 >  ar

少林码僧

暂无认证

  • 2浏览

    0关注

    317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Elasticsearch Query条件执行顺序分析

少林码僧 发布时间:2022-08-24 10:50:26 ,浏览量:2

首先来看lucene检索执行时序图:

在这里插入图片描述 我们现在开始:

我们经常有这样的疑问——filters之间执行的顺序是怎么样的,以及filter查询是在query查询之前还是之后,等等这些问题。这确实是非常重要的问题:诀窍就在于执行一个 query时优先处理 cheap bits(代价更小的比如较短的 posting list)。也许你可能在过去听说或看过 filter查询的执行优先于 query,因为大家都觉得我们不对不匹配过滤器的文档计算分数。但实际情况要复杂一些。

同样,该问题的措词表明我们要遍历所有文档,并检查 query/filter是否一一匹配,而事实则更加微妙:我们的索引结构可以帮助有效地跳过可能不匹配的文档。

查询/过滤器如何运行? 在解释查询如何工作之前,我无法让您深入了解查询的执行顺序。 查询和过滤器具备着以下操作:

cost():查询/过滤器匹配多少文档的近似值。 docID():当前文档ID,初始化为-1。 advance(target):查找可能匹配的目标之后的第一个文档。(skipList操作) nextDoc(): 查找可能匹配的下一个(按文档ID顺序)文档。 这是Advance(docID(&#x

关注
打赏
1661398670
查看更多评论
立即登录/注册

微信扫码登录

0.0468s