Skip to content

Instantly share code, notes, and snippets.

@mocobeta
Created August 6, 2012 14:12
Show Gist options
  • Save mocobeta/3274693 to your computer and use it in GitHub Desktop.
Save mocobeta/3274693 to your computer and use it in GitHub Desktop.
Solr4.0 alpha で deleteByQuery が無視されるバグ
** Solr4.0-ALPHAでハマったのでメモ **
schema.xmlに"_version_" という名のフィールドがないと、deleteByQueryがスルーされるというバグを踏んでいたらしい。
https://issues.apache.org/jira/browse/SOLR-3432
ドキュメントを全削除しようとして、
$ curl http://localhost:8983/solr/update?commit=true -H "Content-type: text/xml" --data-binary '<delete><query>*:*</query></delete>'
をいくら実行しても、まったく削除されないので困って検索したら、ヒットしたのが上記Issue。
"you get no warnings or errors – just silently ignored deleteByQuery"とあるとおり、エラーも警告も出ずスルーされる。
回避策は、Workaroundと書かれているとおり schema.xml に _version_ フィールドを足して再起動すれば良い。正しく削除できるようになった。
<field name="_version_" type="long" indexed="true" stored="true"/>
(http://johtani.jugem.jp/?eid=76 から頂いたスキーマを使う場合は, fieldType定義に合わせてtype="tlong"にする)
ディスカッションを見る限り、_version_ がmandatoryなフィールドになりそうだけどどうなんだろ。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment