22

Elasticsearch インデックス内の特定のプロパティのすべてのエントリを削除し、そのプロパティのすべての型マッピングを削除する方法を見つけようとしています。

私は次の 2 つのドキュメント ページを見てきました: put mappingdelete mapping

2番目のリンクから:

"マッピング (タイプ) とそのデータを削除することを許可します。REST エンドポイントは /{index}/{type} with DELETE method."

私が必要だと思うのは/{index}/{type}/{property}?

これを行うには、インデックス全体を再作成する必要がありますか? つまり、型間でデータを移動および操作しますか?

たとえば、マッピングで GET を呼び出すと、次のようになります。

curl -XGET 'http://.../some_index/some_type/_mapping'

結果:

{
  "some_type": {
    "properties": {
      "propVal1": {
        "type": "double",
        "index": "analyzed"
      },
      "propVal2": {
        "type": "string",
        "analyzer": "keyword"
      },
      "propVal3": {
        "type": "string",
        "analyzer": "keyword"
      }
    }
  }
}

この削除操作の後、propVal3以下が返されます。

curl -XGET 'http://.../some_index/some_type/_mapping'

結果:

{
  "some_type": {
    "properties": {
      "propVal1": {
        "type": "double",
        "index": "analyzed"
      },
      "propVal2": {
        "type": "string",
        "analyzer": "keyword"
      }
    }
  }
}

のすべてのデータはpropVal3、インデックスを通じて削除されます。

4

3 に答える 3

20

You can not do that. Just forget that this value exists... ;-) If you really need to remove it, you will have to reindex your documents.

于 2013-04-22T21:16:05.237 に答える
4

It's not currently possible to remove a property from a mapping. In order to remove all values of a property from all records, you need to reindex all records with this property removed.

于 2013-04-22T21:15:51.360 に答える