すべてのドキュメントを削除しようとして、これを実行しました。
http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E
その後、コミットしました:
http://localhost:8983/solr/update?stream.body=%3Ccommit/%3E
応答があります:
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">17</int>
</lst>
</response>
しかし、検索しても結果は返されます。
私は何を間違えましたか?
それが重要かどうかはわかりませんが、:もエンコードする可能性があります
http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*%3A*%3C%2Fquery%3E%3C%2Fdelete%3E
もう1つ試してみるのは、POSTメソッド(updateを呼び出すための推奨される方法)を使用することです。
curl http://localhost:8983/solr/update?commit=true -H "Content-Type: text/xml" --data-binary '<delete><query>*:*</query></delete>'
最近もこれに悩まされました。 updateLogがsolrconfig.xmlで構成されているが、schema.xmlにversionフィールドがない場合は注意してください。
https://issues.Apache.org/jira/browse/SOLR-3432 を参照してください
私はこれに良い時間を過ごしました!!!
Commit = trueパラメーターをGETリクエストに入れます。
http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E&commit=true
ブラウザのキャッシュをクリアすることを忘れないでください!同じ問題が発生していると思いましたが、ブラウザが結果をキャッシュしたばかりで、キャッシュされたページを返していたことがわかりました。 D'oh!
Lucene wiki:
インデックスの変更は、新しいサーチャーが開かれるまで表示されないため、引き続き検出されます。これを発生させるには、commitコマンドをSolrに送信します(post.jarがデフォルトでこれを行います)
多分あなたはできるPOST a <commit/>
Solrへのメッセージ。
http://localhost:8983/solr/update?stream.body=<delete><query>*:*</query></delete>&commit=true