首頁>
3
回覆列表
  • 1 # 用戶7938824353144

    要替換ES文檔中的數字,您可以使用腳本來更新文檔。首先,您可以使用查詢來檢索包含數字的文檔。然後,使用腳本來替換數字。

    您可以使用腳本語言(如Painless)編寫一個簡單的腳本,使用正則表達式或其他方法來查找和替換數字。

    最後,使用更新API將更新後的文檔發送回Elasticsearch。確保在更新文檔之前備份數據,並在執行腳本之前進行測試,以確保替換操作正確無誤。

  • 2 # 紅領巾叔叔

    在 Elasticsearch 中,可以通過 Update API 或者 Reindex API 替換文檔中的數字。以下是兩種方法的具體實現步驟:

    1. 通過 Update API 替換文檔中的數字

    可以使用 Update API 來替換一個或多個文檔中的數字。舉例來說,假設你有一個名為 "my_index" 的索引,其中包含一個 "my_type" 類型,該類型中有一個字段 "my_field" 存儲了一個數字,你可以進行如下操作:

    ```

    POST my_index/my_type/_update_by_query

    {

    "script": {

    "source": "ctx._source.my_field = params.new_value",

    "lang": "painless",

    "params": {

    "new_value": 12345

    }

    },

    "query": {

    "match_all": {}

    }

    }

    ```

    以上代碼使用 `_update_by_query` API 將索引中所有文檔的 "my_field" 字段替換為新的數字 12345。

    2. 通過 Reindex API 替換文檔中的數字

    如果你需要替換多個索引中的數字,可以使用 Reindex API。首先使用 Reindex API 複製索引中的所有源文檔到一個新索引,然後使用腳本和 Mapping 轉換複製後的文檔,最後替換新文檔中的數字。具體的步驟大致如下:

    - 複製源索引到新索引

    ```

    POST _reindex

    {

    "source": {

    "index": "my_source_index"

    },

    "dest": {

    "index": "my_dest_index"

    }

    }

    ```

    - 使用腳本和 Mapping 轉換新索引中的文檔

    ```

    POST my_dest_index/_update_by_query

    {

    "script": {

    "source": "ctx._source.my_field = ctx._source.my_field + 2",

    "lang": "painless"

    },

    "query": {

    "match_all": {}

    }

    }

    ```

    以上代碼使用 `_update_by_query` API 和一段 Painless 腳本將新索引中 "my_field" 字段的值加 2。

    使用以上兩種方法中的任何一種,可以很方便地替換 Elasticsearch 文檔中的數字。

  • 3 # 深交273

    直接點擊需要修改的數值,再刪除後輸入需要的數值就好了