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