0
点赞
收藏
分享

微信扫一扫

Elasticsearch——深入了解Search的运行机制

Search的运行机制

Search执行的时候分为两个运行步骤:

  • Query阶段
  • Fetch阶段

Query阶段

Fetch阶段

相关性算分问题

  • 相关性算分在shard与shard之间是相互独立的,也就意味着同一个Term的IDF等值在不同shard上是不同的,文档的相关性算分和它所处的shard相关
  • 在文档数量不多时,会导致相关性算分严重不准的情况发生

解决思路有两个:

  • 一是设置分片数为1个,从根本上排除问题,在文档数量不多的时候可以考虑该方案,比如百万到千万级别的数量。
  • 二是使用DFS Query-Then-Fetch查询方式

排序

es默认会采用相关性算分排序,用户可以通过设定sorting参数来自行设定排序规则

分页与遍历

es提供了3种方式来解决分页与遍历的问题:

  • from/size
  • scroll
  • search_after

from/size

scroll

search_after

应用场景

 

参考: https://www.jianshu.com/p/b57229a200aa

举报

相关推荐

0 条评论