查询组结果未返回所有结果?

时间:2016-06-22 04:06:09

标签: ruby-on-rails solr sunspot

从今天开始,我一直在使用查询组来进行我正在运行的小测试。

我在查询中定义了2个组,在特定日期时间之前定义了1个过滤器,在日期时间之后定义了另一个过滤器。以下是我的群组设置的一个非常简化的示例。

group do
  query "before" do
    with(:planned).less_than mydate
  end
  query "after" do
    with(:planned).greater_than mydate
  end
end

执行查询后,我遍历我的组,我看到以下结果:

results.group(:queries).groups.each do |g|
  group_total = g.total
  group_results_count = g.results.count
end

查询before
group_total = 2
group_results_count = 1

查询after
group_total = 3
group_results_count = 1

我的小组的结果计数始终为1. 值实际上是正确的,我已通过Solr管理面板对此进行了双重检查。

我在这里误解了什么,或者群体的工作方式与我的期望不同。

我在Solr 5.3.1上运行

1 个答案:

答案 0 :(得分:0)

默认情况下,Solr returns one result for each group - 请参阅group.limit参数。

According to the source,sunspot中的分组模块使用limit参数:

  def to_params
    params = {
      :group            => "true",
      :"group.ngroups"  => "true",
    }

    params.merge!(@sort.to_params("group."))
    params[:"group.field"] = @fields.map(&:indexed_name) if @fields.any?
    params[:"group.query"] = @queries.map(&:to_boolean_phrase) if @queries.any?
    params[:"group.limit"] = @limit if @limit
    params[:"group.truncate"] = @truncate if @truncate

    params
  end