介绍查询语句

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" } }
}'

results matching ""

    No results matching ""