ES学习笔记基础

来源:互联网 发布:2017大数据峰会 编辑:程序博客网 时间:2024/05/29 16:45

1.精确匹配查询

我们首先来看最为常用的 term 查询, 可以用它处理数字(numbers)、布尔值(Booleans)、日期(dates)以及文本(text)。

在 Elasticsearch 的查询表达式(query DSL)中,我们可以使用 term 查询达到相同的目的。 term 查询会查找我们指定的精确值。作为其本身, term 查询是简单的。它接受一个字段名以及我们希望查找的数值:

{    "term" : {        "price" : 20    }}

通常当查找一个精确值的时候,我们不希望对查询进行评分计算。只希望对文档进行包括或排除的计算,所以我们会使用 constant_score 查询以非评分模式来执行 term 查询并以一作为统一评分。

最终组合的结果是一个 constant_score 查询,它包含一个 term 查询:

GET /my_store/products/_search{    "query" : {        "constant_score" : {             "filter" : {                "term" : {                     "price" : 20                }            }        }    }}

我们用 constant_score 将 term 查询转化成为过滤器

2.一定要了解 term 和 terms 是 包含(contains) 操作,而非 等值(equals) (判断)。 

原创粉丝点击