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 从而就能够达到要求的排序。而且是在得分相同的情况才会进行的排序方式!通过脚本实现。

你可能感兴趣的:(Elasticsearch,搜索引擎)