2016-12-13 27 views
0

我們希望不區分大小寫地排序關鍵字(可以包含字母,數字和特殊字符),並始終將缺失和空鍵置於最後,無論我們是進行升序還是降序排序。在ES 5.0中執行此操作的最佳方法是什麼?我們正在探索腳本排序或編寫自定義比較器。請指教。謝謝Elasticsearch:對關鍵字不區分大小寫並處理丟失的鍵

回答

1

最近我們遇到了同樣的問題,試圖找出爲什麼我們的字母排序大約95%正確。我們有一些存儲在CAPS中的關鍵字,一些小寫字母和一些混合大小寫。如果您使用關鍵字字段進行排序,就像他們在文檔中推薦的一樣,那麼您將成爲彈性使用的字典順序的受害者。這將給你BROWN, Boffey, bailey像他們的例子顯示。

他們說爲了解決這個問題,你應該有一個帶有小寫過濾器的關鍵字字段。文檔沒有更新以向您顯示的是,此新字段必須是text類型,並且它還需要將fieldata設置爲true。否則,您會收到錯誤消息,告知您fieldata已禁用。他們這樣做是爲了防止您對可能消耗大量堆的分析字段進行排序,但據我所知,這是在不使用腳本的情況下實現真正按字母順序排列,不區分大小寫的唯一方法。

+0

腳本排序的問題是它不支持丟失的鍵。你知道如何繞過腳本排序丟失的鍵嗎?我們希望丟失的鑰匙總是走到最後,我無法找到一種方法來做到這一點。你也知道腳本排序如何影響查詢運行時間嗎? –

相關問題