30

ブール値の NOT 概念を使用して、Solr からすべてのドキュメントを選択/削除するにはどうすればよいですか?

つまり、ID が A59 で始まらないすべてのドキュメントを Solr から削除するにはどうすればよいですか?

4

6 に答える 6

69

-を示すために使用しますNOT

たとえば、ID が A59 で始まらないドキュメントをクエリするには、クエリは次のようになります-id:A59*/solr/select/?q=-id:A59*

クエリで削除するには、ここで指定されているように、削除メッセージでクエリを更新ハンドラーに送信します

編集:(NOTすべて大文字)はブール演算子としても使用できます

于 2008-12-19T01:41:38.827 に答える
11

感嘆符は NOT でも機能するため、次のようになります。

/solr/select/?q=!id:A59*

上記の場合に機能するはずです。

于 2012-09-10T12:41:48.383 に答える
1

クエリによる負の削除が機能するとは思わない。この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

于 2012-04-04T17:23:22.870 に答える
0

マウリシオが述べたように:

- 記号を使用して、クエリで除外する対象を示します。次の 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 行目はコミットを行います。

于 2014-05-30T19:50:49.403 に答える