2016-07-26 64 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" 
    } 
    } 
} 
相關問題