ElasticSearch——自定义排序

GET _search
{
  "_source": {
    "include": ["title.Value","dataType","_score"]
  }, 
  "query": {
    "bool": {
      "should": [
        {
          "query_string": {
            "default_field": "title.Value",
            "query": "盆地^10  Unconformity"
          }
        }
      ]
    }
  },
    "sort" : {
      "_score":{
        "order" : "dese"
      },
    "_script" : { 
        "script" : "'区带资源量数据' in doc['dataType'].values?2 :('其它相关资料5' in doc['dataType'].values? 1 :3)",
        "type" : "string",
        "order" : "asc"
    }
  }
}



ES自带的排序默认只是可以对数值字段,日期字段或者是字符串字段进行排序,那么,如果我们就是要人为的让包含字段A的排在包含字段B的前面,当前的方式无法满足。

于是需要寻求另一种方式来解决,将给定的A和B转换成数值1和2 从而就能够达到要求的排序。而且是在得分相同的情况才会进行的排序方式!通过脚本实现。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值