3

Apache Solr で削除クエリを実行するたびに

i.e http://localhost:8983/solr/update?stream.body=<delete><query>id:APP 5.6.2*</query></delete>&commit=true

  <response> <lst name="responseHeader"><int name="status">0</int><int name="QTime">61</int></lst></response>

上記の応答が得られ、インデックスにクエリを実行して、その ID を持つドキュメントが削除されているかどうかを確認すると、削除したドキュメントを引き続きクエリできます。

ドキュメントがsolrインデックスから削除されたことを知る最も確実な方法は何ですか? 削除されたかどうかを確認するのにどのくらいかかりますか?

削除クエリが意図したとおりに実行されたことを確認する最も確実な方法として、Solr 応答を信頼していません。

4

2 に答える 2

3

Qnへの答えを見つけて、「id:APP 5.6.2*」を投稿しました

Solrは空白を解釈しないので、それらをエスケープする必要があるため、id:APP\ 5.6.2*を実行すると機能しました。

また、取得した Response xml は、クエリの成功を実際に示すものではありません。

これは、HTTP 要求が受信され、応答として、qn に投稿した xml を取得したことを意味します。

id:APP 5.6.2* => id:APP と解釈され、id が APP のドキュメントが見つからなかったため、削除したいドキュメントは削除されませんでした。

したがって、クエリは

http://localhost:8983/solr/update?stream.body=<delete><query>id:APP\ 5.6.2*</query></delete>&commit=true
于 2013-10-16T22:56:40.243 に答える
1

URL の削除クエリ パラメータを上に移動する必要があります。クエリパラメーターの後に失われていると思われます。次のことを試してください。

 http://localhost:8983/solr/update?commit=true&stream.body=<delete><query>id:APP 5.6.2*</query></delete>
于 2013-10-09T01:38:44.337 に答える