使用查询的 领域专属语言(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 查询(属于查询类型之一,后面将继续介绍)。