修改elasticsearch欄位資料型別

2021-10-02 20:00:19 字數 1499 閱讀 7817

以下操作基於elasticsearch版本:5.4(elasticsearch最新版本7.x不適合)

說明:所有操作都在elasticsearch外掛程式中進行。如果你沒有外掛程式,理會其精神,也是可以使用命令列操作的。

首先需明確一點:

elasticsearch中字段的資料型別無法做更新處理,這不像mysql中欄位資料型別可以更新。

因此修改字段資料型別的思路是:

1、先新建乙份新的索引a,新的索引a中,將需要修改的字段資料型別改為你需要更正的型別,其餘欄位與舊的索引b保持一致。

2、將舊索引b中資料複製到新索引a的資料中;

3、刪除舊索引b資料;

4、再建立乙個新索引c,c的要求是索引名稱與b一致,字段資料型別與a一致;

5、將新索引a的資料複製到新索引c中;

6、刪除新索引a資料。

7、此時得到的新索引c就是我們需要的。

1、首先檢視欄位的資料型別,是否真的錯誤。

在瀏覽器中輸入位址,檢視索引下字段的資料型別。

說明:1、 資料查詢ip

2、article 需要查詢的索引名

查詢結果如下:

, "data": }},

"id": }},

"type": ,

"uid": }}

}}}}}

2、新建新索引a,修改自己需要的字段資料型別。此處為了演示,將type型別修改為tex

完整json:

, "data": }},

"id": }},

"type": }},

"uid": }}

}}}}}

3、舊索引資料複製到新索引。

完整json:

, "dest":

}

4、刪除舊索引資料

5、建立另乙個新索引,該索引名稱與舊索引相同,字段資料型別與上面新建索引相同。此處與第二步相同。

6、複製資料到新索引。此處與第三步相同。

7、刪除第乙個新建的索引。此處與第第四步相同。

8、至此就得到了你需要的。

我們可以看到在這個過程中,資料複製了兩次,如果你的elasticsearch資料量比較大,則這個過程將會比較久。

還有乙個別的處理方法,就是在第四步後,我們給新建的索引建立乙個別名,別名和舊索引一致。

}]}

elasticSearch修改資料

elasticsearch幾乎能實時提供資料操作和搜尋功能。預設情況下,從開始索引 更新 刪除資料到出現搜尋結果的時間可以認為需要一秒的時間。這是與sql等其他平台的重要區別,其中資料在事務完成後可以立即使用。在上節中我們給索引建立了乙個文件,命令為 put customer doc 1 prett...

Elasticsearch 併發修改樂觀鎖

來自 1 elasticsearch 的樂觀鎖,可以使用外部系統提供的版本號 這時elasticsearch將只檢查提供的版本是否比當前儲存在索引中的版本大 大多少不重要 如果是成功,否則失敗。在elasticsearch中,更新請求實際上是分為兩個階段,獲取文件,修改文件,然後儲存文件。那麼當兩個...

ElasticSearch修改和刪除文件

修改文件方式一 使用prepareupdate,prepareindex兩者選其一皆可 刪除文件方式一 使用preparedelete刪除文件 client.preparedelete blog2 article article.getid tostring get 修改文件方式二 直接使用upda...