介绍查询语句
Elasticsearch提供了可用于执行查询的JSON风格的领域特定语言。这被称为查询的DSL。乍一看该查询语言是相当全面,但开始真正了解它有一些基本的例子是最好的方式。
回到我们的最后一个例子,我们执行这个查询:
{
"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 参数(从0开始)规定了返回从这个参数开始的文件索引,size 参数指定了的文件个数。实现搜索结果的页面时,此功能非常有用。请注意,如果在未指定,则默认为0。
这个例子做了match_all 和账户余额降序排列的结果进行排序,并返回前10名(默认大小)的文件。
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": { "match_all": {} },
"sort": { "balance": { "order": "desc" } }
}'