Elasticsearch提供了一种JSON样式的领域特定语言,你可以用他来执行查询。被称为:Query DSL。该查询语言极其的复杂并且第一样看上去会令人心生敬畏。然而学习它最好的方式是现在一些简单的例子开始。

回到我们之前的案例,我们执行下面的查询:

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

或者:

curl -XGET 'localhost:9200/bank/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} }
}
'

 

分析上面命令,query告知我们查询定义,match_all指定我们打算运行的查询类型。match_all就是在指定的索引中查询所有的文档。

除了query参数,我们也可以传递其他的参数来影响查询结果。在之前的额例子中我们使用过sort参数,现在我们传入size参数:

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

或者

curl -XGET 'localhost:9200/bank/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} },
"size": 1
}
'

如果不指定size,则默认值为10.

下面的例子将在bank索引中匹配所有的文档,并返回第11到第20条文档。

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

from参数(从0开始)指定分页的起始序号,size参数指定了从from开始返回多少条文档。这个功能对于实现结果的分页是很有帮助的。注意如果没有指定from的值,那么默认是0.

下面的例子从按照account字段降序排列所有的文档中查询10条文档。

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

 

 

 

本文系本人根据官方文档的翻译,能力有限、水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸。

文档出处:https://www.elastic.co/guide/en/elasticsearch/reference/current/_introducing_the_query_language.html

 posted on 2017-05-02 14:09  段子手6哥  阅读(171)  评论(0编辑  收藏  举报