2011-11-24 56 views
0

我想知道是否有任何簡單的方法來獲取對構面結果有貢獻的對象的主鍵。使用Rails太陽黑子如何找到返回的facet對應的主鍵?

換句話說,如果search.facet(....).rows.first回報FacetRow,我可以從這個對象中獲取導致此FacetRowsearch.hits的子集?如果有一種完全不同的方式可以繼續,請告訴我。

注意:爲了獲得我的問題的全貌(我認爲您可能已經擁有了這個問題),我想深入瞭解一個方面需要考慮的對象。

在此先感謝

回答

1

FacetRow並不包含實際的搜索結果,它包含當前結果集包含有問題的FacetRow對象的個數。

爲了獲得實際結果,即爲了「向下鑽取」,您需要執行另一個搜索,方法是將相關方面附加到包含FacetRow的查詢中。

以下是描述我的意思的示例代碼。請注意,我的例子是使用我自己項目中的一個名爲「cuisines」的方面。該字符串可以是你的特定方面。在我自己的實現中,這個片段是在一個方面迭代器中部分渲染的,所以它在每個方面都重複。 @searchResponseModel.search的回報:

<% for row in @searchResponse.facet('cuisines').rows %> 
    <%= link_to(row.instance.name, request.request_uri, facet + '[]=' + row.value.to_s) %> (<%= row.count %>)</li> 
    <% end %> 
+0

您的回答聽起來很有趣。你有沒有任何示例代碼,以便我能更好地理解你在這裏提到的內容? –