size作为一级筛选条件单独使用表示,表示只返回聚合结果,不返回具体数据。
{
"size":0,
"query": {
"match": {
"uid":"469"
}
}
}
运行结果:
{
"took": 0,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 236,
"relation": "eq"
},
"max_score": null,
"hits": []
}
}
指定查询的返回结果 _source
在_source字段中直接指定需要返回的字段,类似sql语句的
select order_id,status,created_at from 表 where uid=469 order by cteated_at desc limit10
{
"_source":["order_id","status","created_at"],
"sort":{
"created_at":"desc"
},
"from":0,
"size":10,
"query": {
"term": {
"uid":"469"
}
}
}
数值范围查询 range
range中有4个字段:(g是greater的缩写,t是than的缩写,l是less的缩写,e是equal的缩写)可以单个或者多个一起使用
gt : 大于 > ,
lt : < 小于,
gte : <= 大于等于 ,
lte :<= 小于等于 ,
{
"size":0,
"query":{
"range":{
"money":{
"gte":"0.01",
"lte":"0.05"
}
}
}
}
should和terms的区别:
should可以连接多个不同的字段
{
"size":0,
"track_total_hits":true,
"query":{
"bool":{
"should":[
{"match":{"invoice.invoice_type":"026"}},
{"match":{"buyer.title":"高灯"}}
]
}
}
}
terms只能连接一个字段的多个值
{
"size":0,
"track_total_hits":true,
"query":{
"terms":{
"red_status":[2,5,8]
}
}
}