簡體   English   中英

Elasticsearch-重新索引相同的索引名稱

[英]Elasticsearch--reindexing to the same index name

我有幾個舊索引想要更改其映射。 現在,我需要將舊的映射轉換為新的映射。 我一直在閱讀關於stackoverflow

這個

這個

還有這個

但是我認為它們並不是我所提問題的確切答案。

其中許多使用不同的索引名,因此該操作更容易,但是由於進行了設置,我們使用了更粗略的卷曲數據的方式,這需要確切的索引名。

現在我的問題是:什么是將舊索引(或多個索引)重新索引為新索引的好方法

恩。

我當前的地址是' http://地址到服務器:端口/群集名稱/索引名稱 '

我希望能夠重新索引舊數據,以便在我curl -XGET 'http://address-to-server:port/cluster-name/index-name'它將在新映射中提供舊數據(一些其他字段,一些已修改)

作為我之前的回答,您可以使用重新索引插件來執行映射更改操作

https://github.com/codelibs/elasticsearch-reindexing

並且還要通過檢查樣本輸入數據來確保您的新映射有效並且將采用您的舊數據

可以使用以下方法重新索引數據。

  1. 將數據從原始索引傳輸到某個虛擬索引。 您可以使用以下命令

    elasticsearch-reindex -f "http://localhost:9200/original_index/type/" -t "http://localhost:9200/dummy_index/type/"

    該命令將在終端中使用。

  2. 刪除原始索引。 DELETE /original_index

  3. 使用與原始索引相同的名稱創建索引,並更改映射。
  4. 將數據從虛擬索引移回原始索引

    elasticsearch-reindex -f "http://localhost:9200/dummy_index/type/" -t "http://localhost:9200/original_index/type/"

通過這種方式,您可以使用新的映射還原數據。

注意:您需要為此安裝npm插件

閱讀此內容以安裝elasticsearch-reindex命令。

希望這可以幫助。

對於那些正在尋找運行reindex腳本來更新相同索引的人。 基本上,“重新索引到同一索引”是一種“通過查詢更新”( https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/docs-update-by-query.html )。 您可以使用與reindex相同的script子句,並將其應用於查詢結果

暫無
暫無

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

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