簡體   English   中英

批量刪除ElasticSearch 6+中文檔的屬性

[英]Bulk Delete an attribute from a document in ElasticSearch 6+

我需要從ElasticSearch中的所有文檔中刪除特定屬性。 有沒有辦法做到這一點,可以通過Bulk API完成。 我無法找到要批量刪除ElasticSearch的屬性的API。

有沒有辦法實現同樣的目標。

我文檔的示例部分:

{
  "media": {
    "list1": [
      {"title":"a"}
    ],
    "list2": [
      {"title":"b"}
    ]
  }
}

刪除相同的腳本:

{
  "script": "ctx._source.remove('media.list1')",
  "query": {
    "bool": {
      "must": [
        {
          "exists": {
            "field": "media.list1"
          }
        }
      ]
    }
  }
}

如果您只想從文檔中刪除一個字段(而不是刪除整個文檔),則需要使用無痛腳本。 請參閱此問題帖子 ,以編寫用於從文檔中刪除字段的腳本。

要更新索引中的所有文檔,請使用無痛腳本刪除Update By Query API中的字段,使用match_all作為“查詢”來更新所有文檔。

您不希望為此使用批量API。 如果您想用新信息替換整個文檔(更新),將使用批量API。

暫無
暫無

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

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