Skip to content

Latest commit

 

History

History
46 lines (36 loc) · 1.61 KB

introducing_query_language.md

File metadata and controls

46 lines (36 loc) · 1.61 KB

查询语言(query language)介绍

Elasticsearch 提供一种被称作 Query DSL 的 JSON 风格的领域专属语言去执行查询。这种查询语言乍看之下令人生畏,但是学习它的最好方式是通过一些实例。

回顾之前的例子,我们执行了这样一个查询:

{
  "query": { "match_all": {} }
}

query部分告诉了我们查询的定义,match_all告诉我们想要运行的查询类型,match_all查询简单的搜索指定索引下的所有文档。

除了query参数以外,我们还可以通过传递其它的参数去影响查询的结果。下面的例子使用match_all查询并只返回第一个文档:

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
  "query": { "match_all": {} },
  "size": 1
}'

请注意:如果不指定size,默认值是 10。

下面的例子使用match_all查询并返回 11-20 的文档:

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
  "query": { "match_all": {} },
  "from": 10,
  "size": 10
}'

from指定了从哪一个文档开始的下标,而size参数指定了返回从这个下标开始后的多少个文档,这个特性对于分页查询是非常有用的。请注意:如果from没有指定,默认是 0。

下面的例子匹配一个match_all查询,根据账户余额降序排序结果,并且返回头 10(默认 size) 个文档:

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
  "query": { "match_all": {} },
  "sort": { "balance": { "order": "desc" } }
}'