2017-01-24 90 views
0

如果沒有傳入有效的搜索參數,我們將Solr配置爲返回所有結果。例如: http://localhost:8983/solr/collection1/select?rows=1&title=bar是一個有效的搜索(標題是一個有效字段),它返回正確的數字的結果(許多結果中有1個)。但是... http://localhost:8983/solr/collection1/select?rows=1&foo=bar返回一個出整個集合(foo是不是一個有效的字段)。配置solr默認不返回結果

,我讀了有配置的Solr在默認情況下返回(而不是全部)無結果的方式。它說:「調整requestHandler配置以默認返回所有結果」(我假設這意味着有一種方法可以在默認情況下返回none),但我無法在網上找到有關如何實際執行此操作的任何信息。

我們想要這個的原因是因爲我們正在實現一個我們不希望用戶搜索的字段的黑名單,但是通過這樣做,它允許所有其他字段通過,我們希望那些返回沒有結果(甚至更好 - 錯誤說該字段是無效的)。

Solr通過我們編寫的API調用,所以即使我們可以爲每個調用添加一個參數以使其默認返回沒有結果(noResultsIfNoValidSearch = true或者其他),那也是可行的。

所以,關於如何配置Solr的默認情況下返回任何結果的任何想法?謝謝!

回答

0

想到的最簡單的事情是根據您的要求在您的API或配置中將rows parameter設置爲0。

+0

我不知道怎麼樣,這將有助於。如果傳入有效條款,我仍然希望它正常運行。 –

1
  1. 將echoParams = all添加到您的查詢中,以查看來自所有配置源的請求所具有的所有內容。
  2. 最有可能你定義Q = *:*某處您的配置,這就是導致返回的一切。刪除它,你什麼也得不到。
  3. 如果您使用的是eDixMas,您可以查看uf參數,該參數允許限制用戶被允許查詢的字段。

    要允許除標題各個領域,用UF = * - 標題