es 吗 查询必须有sort_Elasticsearch 查询语法

通过ES查询表达式(Query DSL),可以实现复杂的查询功能,ES查询表达式主要由JSON格式编写,可以灵活的组合各种查询语句。

提示:本章先介绍基本的语法结构,后续的章节单独讲解具体的查询语法。

1.查询基本语法结构

GET /{索引名}/_search

{

"from" : 0, // 返回搜索结果的开始位置

"size" : 10, // 分页大小,一次返回多少数据

"_source" :[ ...需要返回的字段数组... ],

"query" : { ...query子句... },

"aggs" : { ..aggs子句.. },

"sort" : { ..sort子句.. }

}

{索引名},支持支持一次搜索多个索引,多个索引使用逗号分隔,例子:

GET /order1,order2/_search

按前缀匹配索引名:

GET /order*/_search

搜索索引名以order开头的索引。

查询结果格式:

当我们执行查询语句,返回的JSON数据格式如下

{

"took" : 5, // 查询消耗时间,单位毫秒

"timed_out" : false, // 查询是否超时

"_shards" : { // 本次查询参与的ES分片信息,查询中参与分片的总数,以及这些分片成功了多少个失败了多少个

"total" : 1,

"successful" : 1,

"skipped" : 0,

"failed" : 0

},

"hits" : { // hits字段包含我们搜索匹配的结果

"total" : { // 匹配到的文档总数

"value" : 1, // 找到1个文档

"relation" : "eq"

},

"max_score" : 1.0, // 匹配到的最大分值

"hits" : [

// 这里就是我们具体的搜索结果,是一个JSON文档数组

]

}

}

2.query子句

query子句主要用来编写类似SQL的Where语句,支持布尔查询(and/or)、IN、全文搜索、模糊匹配、范围查询(大于小于)。

3.aggs子句

aggs子句,主要用来编写统计分析语句,类似SQL的group by语句

4.sort子句

sort子句,用来设置排序条件,类似SQL的order by语句

5.ES查询分页

ES查询的分页主要通过from和size参数设置,类似MYSQL 的limit和offset语句

例子:

GET /order_v2/_search

{

"from": 0,

"size": 20,

"query": {

"match_all": {}

}

}

查询所有数据,从第0条数据开始,一次返回20条数据。

6. _source

_source用于设置查询结果返回什么字段,类似Select语句后面指定字段。

例子:

GET /order_v2/_search

{

"_source": ["order_no","shop_id"],

"query": {

"match_all": {}

}

}

仅返回,order_no和shop_id字段。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值