2012-06-25 115 views
-1

我想使用price.facet.range,但它不能正常工作,它總是返回篩選結果Solr的範圍不過濾

索引:

<field name="price" type="sdouble" indexed="true" stored="false" multiValued="true" /> 

solrDoc.addField("price", 22.99); 

創建查詢:

query.addNumericRangeFacet("price", 0.0 ,100.0, 0.01); 

創建查詢:

q=mobile+phone& 
fl=productId+score& 
payload=true& 
payload.fl=full_text& 
facet.range=price& 
f.price.facet.range.start=0.0& 
f.price.facet.range.end=100.0& 
f.price.facet.range.gap=0.01& 
facet=true& 
/... 

回答

2

我找到了解決方案

query.addFilterQuery("price:[0 100]");

+1

沒錯。您錯誤地將faceting功能理解爲可以過濾結果的功能,但它是分開的。過濾查詢和刻面,​​以實現「多面導航」。我新來堆棧溢出,但如果它有一個功能來標記這個問題爲「無效」,那麼我認爲這是適當的。 –

+1

謝謝你的解決方案謝爾蓋。我正在尋找這個相同的東西。 – user2250246

0

除非您明確排除您沒有的過濾器查詢,否則Faceting總是對過濾結果進行操作('fq'&'q'params)。您是否可以通過Solr中的exampledocs數據重現問題,或者使用易於其他人驗證的設置來重現問題?

+0

我送他一個過濾器值Q =移動+電話,並要過濾的價格範圍內,你知道如何使用facet.range?你的意思是「exampledocs data」,我的solr增加了數據? – Sergey