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 } } } } }