2016-07-26 6 views
0

私はElastic Searchでフィールドをソートし、次のシンボル "_"をその番号よりも優先して設定する必要があります。弾性検索でフィールドを並べ替える方法を変更するにはどうすればよいですか?

のは、私は次があるとしましょう:

"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" 
    } 
    } 
} 
関連する問題