簡體   English   中英

在Elasticsearch中為索引重新索引-ELK

[英]Reindexing a index in elasticsearch - ELK

重新編制彈性搜索索引的最佳實踐是什么? 這篇文章有幾個步驟,涉及在重新索引索引之前停止logstash索引器,但是作為生產服務器,對於我來說這不是一個選擇。

我有一個問題,因為缺少默認的映射模板,索引中沒有* .raw字段。 我使用了從此處找到的Elasticsearch中的映射模板,並配置了我的ES集群以使用它,但是我猜它僅在創建新索引或顯式重新索引現有索引時才使用。

/_template?pretty返回空響應,但是在添加了上述模板后, /_template?pretty顯示一個新模板,但是要創建的新索引會自動使用此新模板嗎? 還是我需要配置ES明確要求它使用ES?

我非常感謝您的幫助。

執行此IMO的最佳方法是使用別名指向您的實際索引。 https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/indices-aliases.html ),類似於my-index-alias指向my-actual-index-20170101

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "my-actual-index-20170101", "alias" : "my-index-alias" } }
    ]
}

當查詢(或添加內容)到索引時,始終使用別名。

如果需要重新索引,則可以重新索引到另一個索引(例如my-actual-index-20170127 ),完成重新索引后,可以更新別名以指向新索引。

POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "my-actual-index-20170101", "alias" : "my-index-alias" } },
        { "add" : { "index" : "my-actual-index-20170127", "alias" : "my-index-alias" } }
    ]
}

它允許您在不更改任何代碼/不造成任何停機的情況下為索引重新編制索引。

現在,關於實際的重新編制索引問題-我一直在使用elasticsearch-reindex節點應用程序,並獲得了很多成功( https://www.npmjs.com/package/elasticsearch-reindex )。

它的用法很簡單:

用npm npm install -g elasticsearch-reindex后( npm install -g elasticsearch-reindex ),您可以運行

elasticsearch-reindex -f http://localhost:9200/my-actual-index-20170101/{type of documents} -t http://localhost:9200/my-actual-index-20170127

使用新模板在另一個索引中重新索引文檔(使用Kibana Sense)的簡單方法是:

POST /_reindex
{
  "source": {
    "index": "source-index"
  },
  "dest": {
    "index": "dest-index"
  }
}

使用Elasticsearch進行許多不同操作(包括重新索引)的另一種方法是Curator

其最新版本與ES 5.x和6.x兼容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM