2016-07-26 22 views
0

我需要对弹性搜索中的字段进行排序,并将更高优先级的数字设置为以下符号“_”。我该如何改变弹性搜索对字段进行排序的方式?

比方说,我有以下几点:

"1" 
"2" 
"_3" 

我想应该排序如下排序:

"_3" 
"1" 
"2" 

我怎样才能做到这一点?

在此先感谢

+0

是该领域中'字符串“正确? –

+0

你想如何对'_3','_2','_5'进行排序? –

+0

@AndreiStefan在这种情况下,首先是“_”,然后是数字。这将是:_2,_3,_5 – Miguelme

回答

0

我建议像下面这样,如果你知道一些数字不可能被在文件中添加有效的:

{ 
    "sort": { 
    "_script": { 
     "script": "if (doc['messageText'].value.startsWith('_')) return doc['messageText'].value.substring(1).toInteger()-1000000; return doc['messageText'].value.toInteger()", 
     "type": "number", 
     "order": "asc" 
    } 
    } 
} 
相关问题