题
我怎么挑/删除的所有文件从Solr使用布尔概念不?
即我怎么删除所有的文件,从Solr人的身份不会开始与A59?
解决方案
使用 -
表示 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
添加a:给出语法错误(与使用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:将args发布到 http:// localhost:8983 / solr / update .. SimplePostTool:FATAL:Solr返回错误#400解析Lucene查询时出错 SimplePostTool:版本1.4
删除之前,请确保,标识你指的是串并在没有办法将由两个条款相结合。我将会做这件事是读取数据,从solr从脚本和做一个单中删除或在批次,因为它提供了一个更好的控制和验证了每个ids其减少风险的错误删除 因此 1阅读的数据solr从一个脚本用 /solr/选择/?q=id:A59*
2确认和验证身份证
3删除它们一个接一个或一组10个id一次
关于
拉雅
Mauricio 表示:
使用 - 符号表示要在查询中排除的内容。 以下两个查询将删除除以A59开头的所有文档。
GET http://<url>/solr/<core>/update?stream.body=<delete><query>-id:A59*</query></delete>
GET http://<url>/solr/<core>/update?stream.body=<commit/>
第一行执行删除操作。 第二行执行提交。
在文件前面使用 - 符号表示排除该特定值。它会给出 NOT Equal
等结果以下是示例url查询字符串所在的位置。我保留了“&amp; fq = -HQ_City_Code:MEL ”,
它会跳过所有 HQ_City_Code 值 MEL 的结果。
http://localhost:8983/solr/HQ_SOLR_Hotels/select?q=*:*&fq=HQ_National_Code:TH&fq=HQ_TYPE:hotel_EN&fq=HQ_Country_Code:AU&**fq=-HQ_City_Code:MEL**&wt=json&indent=true