查询语言简介

Elasticsearch提供一种JSON风格的DSL让你可以执行查询. 这被称为查询DSL. 这个查询语言十分的全面, 乍一看会令人生畏, 但是最好的学习方法是从几个基础的例子开始.

回到我们之前的例子, 我们执行这样的查询:

GET /bank/_search
{
  "query": { "match_all": {} }
}

仔细看上面的语句, query告诉我们查询定义是什么, match_all部分是查询我们要的数据的简单类型. match_all是一个简单的查询, 查询索引里的所有文档.

除了查询参数, 我们也可以传递其他参数来影响查询结果, 上面的李自力我们传递sort, 这里我们传递size:

GET /bank/_search
{
  "query": { "match_all": {} },
  "size": 1
}

注意, 如果没有使用size字段, 默认为10.

下面的例子返回从10到19的文档

GET /bank/_search
{
  "query": { "match_all": {} },
  "from": 10,
  "size": 10
}

from参数(从0开始)指定了从哪一个文档开始, size参数指定了从from参数开始返回多少数量的文档. 这个特性对于分页特别有用. 注意如果没有指定from, 默认为0.

下面这个例子对account balance字段降序返回了10条文档(默认10条):

GET /bank/_search
{
  "query": { "match_all": {} },
  "sort": { "balance": { "order": "desc" } }
}

results matching ""

    No results matching ""