ブール値の NOT 概念を使用して、Solr からすべてのドキュメントを選択/削除するにはどうすればよいですか?
つまり、ID が A59 で始まらないすべてのドキュメントを Solr から削除するにはどうすればよいですか?
ブール値の NOT 概念を使用して、Solr からすべてのドキュメントを選択/削除するにはどうすればよいですか?
つまり、ID が A59 で始まらないすべてのドキュメントを Solr から削除するにはどうすればよいですか?
-
を示すために使用しますNOT
。
たとえば、ID が A59 で始まらないドキュメントをクエリするには、クエリは次のようになります-id:A59*
。/solr/select/?q=-id:A59*
クエリで削除するには、ここで指定されているように、削除メッセージでクエリを更新ハンドラーに送信します。
編集:(NOT
すべて大文字)はブール演算子としても使用できます
感嘆符は NOT でも機能するため、次のようになります。
/solr/select/?q=!id:A59*
上記の場合に機能するはずです。
クエリによる負の削除が機能するとは思わない。このJiraチケットを参照してください: https ://issues.apache.org/jira/browse/SOLR-381
:にプレフィックスを付ける回避策があると言われていますが、私には運がありません。
これは機能しません(NOTを使用する場合と同じです)java -Ddata = args -jar /opt/solr/example/exampledocs/post.jar "-userid:*" java -jar /opt/solr/example/exampledocs/post.jar * .xml
:を追加すると、構文エラーが発生します(NOTの使用と同じ)java -Ddata = args -jar /opt/solr/example/exampledocs/post.jar ":-userid:*" java -jar / opt / solr / example / exampledocs / post.jar * .xml
SimplePostTool:バージョン1.4 SimplePostTool:引数をhttp:// localhost:8983 / solr / updateにPOSTします..SimplePostTool:致命的:Solrがエラー#400を返しましたLuceneクエリの解析中にエラーが発生しましたSimplePostTool:バージョン1.4
マウリシオが述べたように:
- 記号を使用して、クエリで除外する対象を示します。次の 2 つのクエリは、A59 で始まるドキュメントを除くすべてのドキュメントを削除します。
GET http://<url>/solr/<core>/update?stream.body=<delete><query>-id:A59*</query></delete>
GET http://<url>/solr/<core>/update?stream.body=<commit/>
最初の行は削除操作を行います。2 行目はコミットを行います。