這也許一個愚蠢的問題,但我現在用的是每天滾動索引保存我的logstash事件時,配置也很簡單:Elasticsearch每天滾動索引包含重複的_id
input: {..source..}
filter: {..filter..}
output: {
elasticsearch: {
document_id: %{my_own_guarantee_unique_id}
index: myindex-%{+YYYY.MM.DD}
}
}
什麼我發現了,如果有具有相同my_own_guarantee_unique_id
的事件會在不同的日期出現,它會在這些日常滾動指數中創建多次,即。您可以在myindex-2015.06.21和myindex-2015.06.22中找到出現_id = 123的事件
是這種重複出箱?我該怎麼做才能避免它?任何建議或閱讀將不勝感激,謝謝!
這很有道理Jettro。由於我使用的是logstash,在保存文檔時是否有一種方法可以使用'_uid'而不是'_id'? –
如果您想要做的是更新文檔,如果具有相同ID的文檔長度超過您可以通過更改日誌存儲配置中索引的模板將它們插入到一個大型索引中。問題是索引之間沒有關係。無法控制不同索引的唯一性。 –
同意Jettra,我最終做出了一個自定義logstash過濾器,通過通配符(logstash- *)發送查詢到相關索引以查找具有該「_id」的記錄,並且如果有現有記錄並且不屬於當天的索引,它將刪除它們,並將當前事件插入當前索引 - 有點笨拙,但有效 –