web-dev-qa-db-ja.com

Solr削除が何らかの理由で機能しない

すべてのドキュメントを削除しようとして、これを実行しました。

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>

しかし、検索しても結果は返されます。

私は何を間違えましたか?

27
Blankman

それが重要かどうかはわかりませんが、:もエンコードする可能性があります

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>'
32
mlathe

最近もこれに悩まされました。 updateLogがsolrconfig.xmlで構成されているが、schema.xmlにversionフィールドがない場合は注意してください。

https://issues.Apache.org/jira/browse/SOLR-3432 を参照してください

私はこれに良い時間を過ごしました!!!

9
Rob

Commit = trueパラメーターをGETリクエストに入れます。

http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E&commit=true

6
Tim P

ブラウザのキャッシュをクリアすることを忘れないでください!同じ問題が発生していると思いましたが、ブラウザが結果をキャッシュしたばかりで、キャッシュされたページを返していたことがわかりました。 D'oh!

2
Pete

Lucene wiki:

インデックスの変更は、新しいサーチャーが開かれるまで表示されないため、引き続き検出されます。これを発生させるには、commitコマンドをSolrに送信します(post.jarがデフォルトでこれを行います)

多分あなたはできるPOST a <commit/>Solrへのメッセージ。

0
Juampa
http://localhost:8983/solr/update?stream.body=<delete><query>*:*</query></delete>&commit=true
0
Tyler Long