查询语言简介
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" } }
}