[英]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
並且還要通過檢查樣本輸入數據來確保您的新映射有效並且將采用您的舊數據
可以使用以下方法重新索引數據。
將數據從原始索引傳輸到某個虛擬索引。 您可以使用以下命令
elasticsearch-reindex -f "http://localhost:9200/original_index/type/" -t "http://localhost:9200/dummy_index/type/"
該命令將在終端中使用。
刪除原始索引。 DELETE /original_index
將數據從虛擬索引移回原始索引
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.