DSL搜索 - 排序


es的排序同sql,可以desc也可以asc。也支持组合排序。

实操:

POST     /shop/_doc/_search
{
	"query": {
		"match": {
			"desc": "慕课网游戏"
		}
    },
    "post_filter": {
    	"range": {
    		"money": {
    			"gt": 55.8,
    			"lte": 155.8
    		}
    	}
    },
    "sort": [
        {
            "age": "desc"
        },
        {
            "money": "desc"
        }
    ]
}

对文本排序

由于文本会被分词,所以往往要去做排序会报错,通常我们可以为这个字段增加额外的一个附属属性,类型为keyword,用于做排序。

  • 创建新的索引
    POST        /shop2/_mapping
    {
        "properties": {
            "id": {
                "type": "long"
            },
            "nickname": {
                "type": "text",
                "analyzer": "ik_max_word",
                "fields": {
                    "keyword": {
                        "type": "keyword"
                    }
                }
            }
        }
    }
    
  • 插入数据
    POST         /shop2/_doc
    {
        "id": 1001,
        "nickname": "美丽的风景"
    }
    {
        "id": 1002,
        "nickname": "漂亮的小哥哥"
    }
    {
        "id": 1003,
        "nickname": "飞翔的巨鹰"
    }
    {
        "id": 1004,
        "nickname": "完美的天空"
    }
    {
        "id": 1005,
        "nickname": "广阔的海域"
    }
    
  • 排序
    {
        "sort": [
            {
                "nickname.keyword": "desc"
            }
        ]
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值