1.查找多个精确值
term
查询对于查找单个值非常有用,但通常我们可能想搜索多个值。 如果我们想要查找价格字段值为 $20 或 $30 的文档该如何处理呢?
不需要使用多个 term
查询,我们只要用单个 terms
查询(注意末尾的 s ), terms
查询好比是 term
查询的复数形式(以英语名词的单复数做比)。
它几乎与 term
的使用方式一模一样,与指定单个价格不同,我们只要将 term
字段的值改为数组即可:
{ "terms" : { "price" : [20, 30] } }
带评分的DSL:
GET /my_store/products/_search { "query": { "terms": { "price": [ "20", "30" ] } } }
不带评分:
GET /my_store/products/_search { "query": { "constant_score": { "filter": { "terms": { "price": [ "20", "30" ] } } } } }