我使用solr trunk来搜索一些文档并按其类别对其进行分组,但我必须首先按另一个字段对它们进行分组。更具体地说,我使用的是这个模式:
- component_id:字符串
- 类别:字符串
- 名称:文本
我有两份文件:
- component_id=register1,category=category 1,name='工具栏'
- component_id=register1,category=category2,name='酒吧动物园'
我的查询是(仅相关参数):
{edismax-qf=name}(foo-bar)&group.field=component_id&group.ttruncate=true&facet.field=类别&bq=类别:类别1^2
分面结果是:
'category':
'category1', 1
'category2',1
但是,当我更改bq参数时,例如:bq=category:category1^20
方面的结果发生了变化:
'category':
'category1', 1
'category2', 0
这可能吗?是虫子吗?如果我将group.ttruncate=false设置为false,那么在本例中一切都很好,但在其余查询中则会失败。
谢谢&关于
我自己回答。
当数据是统一的或组包含类似对象时,group.truncate是正确的选项,但在混合不同类别的数据时会出现问题。
如果group.ttruncate=true|A|Ş|B|<>|A|+|B|-AåB
bq参数一切正常。