使用Rails Sunspot如何找到与返回的facet对应的主键?

时间:2011-11-24 09:06:23

标签: ruby-on-rails ruby-on-rails-3 sunspot sunspot-rails

我想知道是否有任何简单的方法来获取有助于构面结果的对象的主键。

换句话说,如果search.facet(....).rows.first返回FacetRow,我是否可以从此对象中获取有助于此search.hits的{​​{1}}的子集?如果有完全不同的方式,请告诉我。

注意:为了全面了解我的问题(我认为你可能已经有了),我想深入研究一个方面所依据的对象。

提前致谢

1 个答案:

答案 0 :(得分:1)

FacetRow不包含实际搜索结果,它包含当前结果集中包含所讨论的FacetRow的对象计数。

为了获得实际结果,即为了“向下钻取”,您需要通过将相关方面附加到包含FacetRow的查询来执行另一次搜索。

下面是描述我的意思的示例代码。请注意,我的例子是使用我自己项目中名为“cuisine”的方面。那个字符串将是你的特定方面。在我自己的实现中,这个片段在facet迭代器中部分呈现,因此每个facet都会重复它。 @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 %>