2011-03-07 55 views
4

在太陽黑子solr,我們可以通過方面分組具有相似屬性的記錄。但是有可能從兩個屬性做一個facet過濾器嗎?太陽黑子Solr方面與多個過濾器

我試圖在我的搜索這樣做:

facet_search = User.search do 
    facet :attribute1, :attribute2 
end 


facet_search.facet(:attribute1, :attribute2) 

有了這個,我不斷收到零值,我相信,有與ATTRIBUTE1和attribute2相似值的記錄。

假設有兩條記錄在attribute1處的值爲「orange」。這兩條記錄在屬性2中的值爲「老鷹」。

在太陽黑子中是否有一項功能可以用來根據兩列對記錄進行分組,以及如何執行此操作?

感謝您的幫助提前。

回答

6

你真的想要過濾嗎? Faceting只是返回該屬性的前n個唯一值。因此,如果attribute1包含顏色,則會返回橙色,紅色,藍色等與您當前搜索匹配的任何唯一顏色。單獨面對不會過濾器您的搜索結果。

從你的問題,我認爲你想過濾屬性1中的某些值和屬性2中的某些值。要做到這一點,您的搜索將看起來更像:

facet_search = User.search do 
    # Filter my results... 
    with(:attribute1).equal_to("orange") 
    with(:attribute2).equal_to("eagle") 
end 

您可能還包括facet :attribute1,如果你想獲得唯一值ATTRIBUTE1在UI或東西來顯示。請注意,將屬性1聲明爲方面不會在搜索上強加過濾器。