5

MOBZ の ElasticSearch ヘッド (Web UI) から直接インデックス エントリを削除したい。

「Any Request」セクションで次の DELETE クエリを試しました。

{"query":{"term":{"supplier":"ABC"}}}

ただし、見返りとして得られるのは次のとおりです。

{
ok: true
acknowledged: true
}

エントリは削除されません。

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

4

3 に答える 3

5

投稿データから「クエリ」を削除する必要があります。_search にのみ必要であり、delete には _query エントリポイントを使用する必要があります。その場合、投稿が単なるクエリであることは明らかであるため、クエリであることを明示的に述べるのは不要です (実際には無関係です)。

あれは:

curl -XPOST 'localhost:9200/myindex/mydoc/_search' -d 
'{"query":{"term":{"supplier":"ABC"}}}'

検索ではうまくいきます。ただし、クエリで削除するには、次のようにします。

curl -XDELETE 'localhost:9200/myindex/mydoc/_query' -d 
'{"query":{"term":{"supplier":"ABC"}}}'

動作しません (_query へのエントリ ポイントの変更と、CURL パラメータを削除に切り替えることに注意してください)。電話する必要があります:

curl -XDELETE 'localhost:9200/myindex/mydoc/_query' -d 
'{"term":{"supplier":"ABC"}}'

これが役立つかどうか教えてください。

HEAD で実行する場合:

  1. /stock/one/_query「GET/PUT/POST/DELETE」のドロップボックスの横にある任意のリクエストテキストボックスに入れます

  2. ドロップダウン メニューで [削除] を選択します

  3. リクエストボディは{"term":{"vendor":"Socks"}}

あなたの問題は、次のリクエストボディを使用したことでした:{"query":{"term":{"vendor":"Socks"}}} 検索には問題ありませんが、削除には問題ありません。

于 2013-03-24T09:22:10.843 に答える
0

最初に検索リクエストを発行して、削除したいドキュメントが実際にクエリによって返されていることを確認します。

うまくいかないことがたくさんあるので、明確な助けを与えることは不可能ですが、いくつかの考えられる問題は次のとおりです。

  • ES ヘッド クエリで指定された正しいインデックス/タイプがありません
  • 最初の入力ボックスではなく、2 番目の入力ボックスでインデックスとタイプを指定する必要があります。最初の行はホスト アドレス用で、末尾にスラッシュが自動的に追加されます
  • ドロップダウンから削除コマンドを使用する必要があります
  • フィールドのアナライザーは、Term クエリによって検出されないようにフィールド テキストを変更しています。

おそらく、これが最後の選択肢です。アナライザーを指定していない場合、ES が選択する既定のアナライザーは、小文字フィルターを含む標準アナライザーです。したがって、用語「ABC」は索引付けされず、代わりに「abc」が索引付けされます。

用語クエリはまったく分析されないため、大文字と小文字の区別が重要です。

これらのヒントが役に立たない場合は、マッピングといくつかのサンプル データを投稿してください。

于 2013-03-22T23:33:46.913 に答える