0

ドキュメントの読み込みと削除に 2 つの同様の ES メソッドを使用しています。

result = es.search(index='users_favourite_documents',
                   doc_type='favourite_document',
                   body={"query": {"match": {'user': user}}})

と:

result = es.delete_by_query(index='users_favourite_documents',
                            doc_type='favourite_document',
                            body={"query": {"match": {'user': user}}})

最初のものは問題なく動作し、期待されるレコードを返します。
2番目のものは例外をスローします:

"TransportError(404,'{
\"found\":false,
\"_index\":\"users_favourite_documents\",
\"_type\":\"favourite_document\",
\"_id\":\"_query\" , \"_version\":1,
\"_shards\":{\"合計\":2,\"成功\":2, \"失敗\":0}}')"

私は何を間違っていますか?

4

2 に答える 2

2

ES 2.x を実行している場合は、最初にクエリによる削除プラグインがインストールされていることを確認する必要があります。

ES_HOME フォルダーで、これを実行します。

bin/plugin install delete-by-query

次に ES を再起動すると、es.delete_by_query(...)通話が機能します。

ES 1.x を実行している場合、delete-by-query はコアの一部であり、そのまま使用できるはずです。

于 2016-09-05T11:14:26.833 に答える