0

我正在使用 solr trunk 搜索一些文档并按类别对它们进行分组,但我必须先按另一个字段对它们进行分组。更具体地说,我正在使用此架构:

  • 组件ID:字符串
  • 类别:字符串
  • 名称:文字

我有两个文件:

  1. component_id = register1, category = category1, name='foo bar'
  2. component_id = register1, category = category2, name='foo bar zoo'

我的查询是(仅相关参数):

{edismax qf=name}(foo bar)&group.field=component_id&group.truncate=true&facet.field=category&bq=category:category1^2

方面的结果是:

'category': 
'category1', 1 
'category2',1

但是,当我更改 bq 参数时,例如: bq=category:category1^20

分面结果发生了变化:

'category':
'category1', 1   
'category2', 0

那可能吗?是错误吗?如果我设置 group.truncate=false 对于这个例子一切都很好,但对于其余的查询它会失败。

感谢和问候

4

1 回答 1

0

我自己回答。

当您的数据是统一的或当您的组包含相似的对象时,group.truncate 是正确的选项,但是在混合来自不同类别的数据时会出现问题。

如果 group.truncate=true |A| ∪ |B| <> |A| + |B| - A ∩ B

使用 bq 参数一切正常。

于 2012-02-29T08:33:28.273 回答