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

点这里可以跳转到人工智能网站

发表评论