2012-08-08 86 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