Elasticsearch 棄用 string,並且 text 不支援 sort 排序 

2019-04-19 Log

最近在搞公司的 Elasticsearch 弄的頭昏眼花,主要希望換掉舊的 Elasticsearch,但是在過程中踩了一堆坑 …

這次遇到的問題是在 Logstash filter 切出來的 field 在 Kibana 上面都沒有 sort,但是舊版 Kibana 3.x 不用特別處理就可以有 sort 的功能。

正常狀況下,會有箭頭可以讓你 sort 排序,但是 Logstash 切出來的 field sort 箭頭卻不見了

花了一個早上 Google 找了一堆文件發現 Elasticsearch 在 5.x 的時候就棄用 string 改成 text,所以在 Kibana 上預設的 template 用 match_mapping_type 把 送來的 string 轉成 text 格式 …

在上面可以看到當 index 符合預設的 logstash-* 時,只要 type 為 string 就會被 match_mapping_type 轉成 text,但 field.keyword 為了要讓你可以 Query 所以 Data type 不是 text。

然後 Elasticsearch 6.x 開始 text 就不允許 sort,所以導致我從 Logstash 切出來的 field 都變成 text 進而不能 sort。

要解決可以直接修改 template 讓 string 進來不是轉成 text,而是 keyword (或其他 Data type)

index_patterns 要特別注意是否有符合你的 index name,最後 rebuild index 就會生效新的 data type 囉。

參考資料:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱

%d 位部落客按了讚: