原文地址: https://www.elastic.co/guide/cn/elasticsearch/guide/current/_search_with_query_dsl.html, 版权归 www.elastic.co 所有
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/_search_with_query_dsl.html
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/_search_with_query_dsl.html
请注意:
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
使用查询的 领域专属语言(DSL) 搜索edit
Query-string 搜索 对于从命令行进行临时搜索非常方便,但它有自身的局限性(参见 轻量 搜索 )。 Elasticsearch 提供一个丰富、灵活的查询语言叫做查询 领域专属语言 (query DSL),它支持构建更加复杂、健壮的查询。
领域专属语言 (domain-specific language)(DSL), 指定使用 JSON 作为请求体。我们可以像这样重写之前的查询所有 Smith 的搜索 :
GET /megacorp/employee/_search { "query" : { "match" : { "last_name" : "Smith" } } }
返回结果与之前的查询一样,但是可以看到很多变化。其中之一是,不再使用 query-string 参数,而是一个请求体替代。这个请求体使用 JSON 构造,并使用了一个 match
查询(属于查询类型之一,后面将继续介绍)。