2014-01-07 293 views
-1

我有一個solr查詢如:host:8983/solr/collection/select?q=propids%3A1&wt=json&indent=true 其中我過濾關於propids:1.問題是當過濾器propids:1和2,我只有文件索引與propids:1,buuut我得到所有與索引結果使用時,即使我沒有任何propids有2。任何幫助表示讚賞。由於Solr查詢不返回預期結果

+1

隨着Solr,你將不得不提供更多的信息。在solrconfig.xml中包含您的模式設計(schema.xml中的字段)以及請求處理程序的定義(「/ select」引用)。 – jro

+0

我需要帶有propid 1和2的文檔,它是一個multiValued字段,值之間用「,」分隔。這些將是一些產品的性能,如容量和功率或任何財產。每個產品都有一個容量屬性,一個屬性等等。當我構建我的過濾器時,我必須構建我的查詢,所以如果選擇了一種容量,它應該返回所有帶有該屬性的prod,比如果選擇了另一個prop,它應該返回刺激具有第一個AND第二個屬性。希望現在很清楚:) – geryjuhasz

+0

「我需要帶有propid 1和2的文檔,它是一個多值字段,值之間用」,「分隔 - 可以顯示您的模式字段定義和已編制索引的示例文檔嗎? – jro

回答

1

含有propids = 1

host:8983/solr/collection/select?q=*:*&wt=json&indent=true&fq=propids:1 

含有propids = 2

host:8983/solr/collection/select?q=*:*&wt=json&indent=true&fq=propids:2 

所有結果全部結果包含所有的結果要麼propids = 1或propids = 2

host:8983/solr/collection/select?q=*:*&wt=json&indent=true&fq=propids:(1 OR 2) 

所有包含propids = 1和propids = 2的結果

host:8983/solr/collection/select?q=*:*&wt=json&indent=true&fq=propids:1&fq=propids:2 
+0

看來好,很遺憾,我不能再測試它了,因爲我已經修改了邏輯。我認爲這是正確的答案。謝謝。 – geryjuhasz

0

我猜你的查詢部分是

Q = propids:1和2

這並不意味着它會搜索propids = 1和2

請檢查您的solrconfig.xml作爲默認搜索字段。 因爲如果您的查詢像我mentioed,那麼就意味着

Q = propids:1和default_searchable_field:2

0

如果你需要得到與propids = 1頁加上propids = 2的文檔文件, 做這個。

q=propids:1 2 

這將匹配字段(1和2)與該字段的內容並獲得兩種類型的文檔。

+0

注意:這裏假設一個默認的OR查詢操作符。 – jro