es查询,json格式查询,复杂查询,学习笔记

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]
        }
    }
}

上一篇:vmstat命令摘录


下一篇:实验四 决策树算法及应用