ElasticSearch学习笔记(七)高级查询

Open 这个 分享 由 lemontea 发布于 2017-10-30 · 871 阅读 0 回复
lemontea 评论于 2017-10-30

ElasticSearch高级查询分为子条件查询和符合条件查询。

  • 子条件查询:就是特定字段查询所指特定的值;
  • 复合条件查询:就是以一定的逻辑组合子条件查询。

子条件查询又分为:Query context和Filter context。

Query Context是指在查询过程中,除了判断文档是否满足查询条件外,还会计算一个_score来标识匹配的程度,旨在判断目标文档和查询条件匹配的有多好(吻合度)。

Query Context常用的查询有:

  • 全文本查询:针对文本类型数据;
  • 字段级别查询:针对结构化数据,如数字、日期等。

Filter Context在查询过程中,只判断该文档是否满足条件,只有Yes或No。而Query Context除了Yes和No还会有匹配的吻合度。


复合查询常用的查询方式有固定分数查询和布尔查询(还有其他更多的查询方式这里不记录)

固定分数查询:查询的_score的评分,可以指定分数。不支持match只支持filter。

布尔查询:配合should使用。应当满足哪些条件match。还可以配合另一个关键词用must,表示必须满足哪些条件。
must和should也可以组合使用。还有must_not,不包含满足的条件。