章节
Elasticsearch 基本概念
Elasticsearch 安装
Elasticsearch 使用集群
Elasticsearch 健康检查
Elasticsearch 列出索引
Elasticsearch 创建索引
Elasticsearch 创建和查询文档
Elasticsearch 删除索引
Elasticsearch 修改数据
Elasticsearch 更新文档
Elasticsearch 删除文档
Elasticsearch 批处理
Elasticsearch 搜索数据
Elasticsearch 搜索API
Elasticsearch Query DSL(查询语言)
Elasticsearch 搜索
Elasticsearch 过滤
Elasticsearch 聚合
Elasticsearch提供了一种json风格的查询语言,称为Query DSL(Query domain-specific language)。查询语言功能很全面,让我们从几个基本示例开始。
回到上一章例子,我们执行了这个查询:
API
GET /bank/_search
{
"query": { "match_all": {} }
}
CURL
curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} }
}
'
query
字段表示这次查询的定义,其中match_all
字段表示查询类型 - 匹配所有文档。
除了query
参数,还可以传递其他参数。下面例子中,我们传入一个size
参数,设置返回条目数量:
API
GET /bank/_search
{
"query": { "match_all": {} },
"size": 1
}
CURL
curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} },
"size": 1
}
'
注意,如果没有指定size
,默认为10。
下面例子执行match_all
,返回文档10到19:
API
GET /bank/_search
{
"query": { "match_all": {} },
"from": 10,
"size": 10
}
CURL
curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} },
"from": 10,
"size": 10
}
'
from
参数(基于0)指定从哪个文档序号开始,size
参数指定返回多少个文档,这两个参数对于搜索结果分页非常有用。注意,如果没有指定from
,则默认值为0。
下面例子执行match_all
操作,对结果按帐户余额降序排序,返回前10个(默认)文档。
API
GET /bank/_search
{
"query": { "match_all": {} },
"sort": { "balance": { "order": "desc" } }
}
CURL
curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} },
"sort": { "balance": { "order": "desc" } }
}
'