es对查询结果的排序

es查询时的自定义排序和过滤:

1)排序

核心:sort字段指定排序;
1、sort字段指定排序,

倒序:“sort”: { “tftxtime”: { “order”: “desc” }}

查询条件格式如下:

{
	"query": {
		"bool": {
			"must": [],
			"must_not": [{
					"term": {
						"flow_yh_yh_location": ""
					}
				},
				{
					"term": {
						"routemcc": "1111"
					}
				},
				{
					"term": {
						"routemcc": "2222"
					}
				}
			],
			"should": [{
				"match_all": {}
			}]
		}
	},
	"from": 0,
	"size": 10,
	"sort": {
		"tftxtime": {
			"order": "desc"
		}
	},
	"aggs": {}
}

2、ES支持多级排序— sort字段:

​ 将查询结果首先按第一个自定义条件排序,当第一个 sort 值完全相同时,再按照第二个条件进行排序,以此类推。

GET /_search
{
    "query" : {
        "bool" : {
            "must":   { "match": { "tweet": "manage text search" }},
            "filter" : { "term" : { "user_id" : 2 }}
        }
    },
    "sort": [
        { "date":   { "order": "desc" }},  // 用date来进行查询结果的排序;
        { "age": { "order": "desc" }}  // 当date相同时,再用age来进行排序;
    ]
}

2) 范围查询

range : 实现范围查询
参数:from, to, include_lower, include_upper, boost

include_lower:是否包含范围的左边界,默认是true

include_upper:是否包含范围的右边界,默认是true

GET /lib3/user/_search 

{ 

     "query": { 

          "range": { 

               "birthday": { 

                    "from": "1990-10-10", 

                    "to": "2018-05-01" 

               } 

          } 

     } 

}

GET /lib3/user/_search 

{ 

     "query": { 

          "range": { 

               "age": { 

                    "from": 20, 

                    "to": 25, 

                    "include_lower": true, 

                    "include_upper": false 

               } 

          } 

     } 

} 

3)过滤:

terms —— 过滤(多个值)

​ terms 跟 term 有点类似,但 terms 允许指定多个匹配条件。

​ 即,如果某个字段指定了多个值,那么文档需要一起去做匹配:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HlKXnXTQ-1578409119357)(mdpic/20190801150943408.png)]

如上图所示:

	过滤掉:带有“search”,“full_text”,“nosql” 这三个tag标签的数据们;

条件。

​ 即,如果某个字段指定了多个值,那么文档需要一起去做匹配:
[外链图片转存中…(img-HlKXnXTQ-1578409119357)]

如上图所示:

	过滤掉:带有“search”,“full_text”,“nosql” 这三个tag标签的数据们;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值