Elasticsearch入门-6.数据搜索

1. 三个基本概念

  • Mapping 映射:描述字段存储方式
  • Analysis 分析:全文如何处理使之可以被搜索
  • Query DSL 领域特定查询语言:ES查询语言

2. 数据搜索

在ES中提交一个搜索请求,协调节点将请求转发到对应索引的每个分片中,然后从每个分片收集结果。

3. 分页

ES使用fromsize来进行浅分页。

在分页中,当页码过大时会产生深度分页的问题。

  1. 假设当前有5个主分片,页码为10,每页10条数据
  2. ES各个分片收到请求后会把第前100条数据发送给协调节点
  3. 协调节点将500条数据进行排序后取90-99这10条数据返回给客户端
  4. 假设当前页码为1000,则协调节点需要获取50000条数据进行排序,这就是深度分页

为了避免深度分页,可以限制搜索的最大页码,例如google最多只有49页结果。如果确实要用到深度分页,可以使用ES提供的scroll search