2012-08-08 55 views
17

如何从Solr结果集中排除一组文档ID?本质上类似如何在Solr中查询?

/select?q=tag_id:367 AND NOT id:(306670,302209)

我尝试过了,它并不排除与这些ID的文件。

回答

20

试试这个:

/select?q=*:*&fq=tag_id:367 AND id:[* TO *] -id:(306670 302209) 

这应该让你打造出了添加为你想要的IDS,而无需你要消除一个ID,每次加-id:302209。反过来也是如此,您可以将-+对换,并强制使用一组数值。

+0

Thx用于提示'q = *:*'格式。你建议的那个仍然没有排除id为306670和302209的文档。但是这个是:/ select?q = *:*&fq = tag_id:367 AND -id:306670 AND -id:302209'本质上是分组功能与parantheses不适合我。 – arun 2012-08-09 16:06:00

+1

这可能是因为我由于某种原因添加了逗号,请尝试用空格分隔它们。我也会更新我的代码。 – harmstyler 2012-08-09 18:28:06

+0

是的,空间工作。谢谢! – arun 2012-08-09 23:50:15

8

找到一个解决办法:

/select?q=tag_id:367&fq=-id:306670 AND -id:302209 

不知道这是否是做它虽然最好的办法!

+0

就是这样 - 你也可以做id:-306670 -302209 – Ansari 2012-08-08 00:24:22

+0

Thx确认。但是,替代语法是为我抛出org.apache.lucene.queryParser.ParseException。 – arun 2012-08-08 00:36:47

+0

嗯,这可能是因为默认搜索字段未设置为“ID”。 – Ansari 2012-08-08 00:42:44