我正在尝试以嵌套方式按多个字段执行搜索结果聚合(计数和总和)分组。
例如,使用本文末尾显示的架构,我希望能够获得按“类别”分组并按“子类别”进一步分组的“大小”总和,并得到如下内容:
<category name="X">
<subcategory name="X_A">
<size sum="..." />
</subcategory>
<subcategory name="X_B">
<size sum="..." />
</subcategory>
</category>
....
我一直主要关注 Solr 的 Stats 组件,据我所知,它不允许嵌套聚合。
如果有人知道使用或不使用 Stats 组件的某种方式来实现这一点,我将不胜感激。
这是目标模式的精简版本:
<types>
<fieldType name="string" class="solr.StrField" />
<fieldType name="text" class="solr.TextField">
<analyzer><tokenizer class="solr.StandardTokenizerFactory" /></analyzer>
</fieldType>
<fieldType name="date" class="solr.DateField" />
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0" />
</types>
<fields>
<field name="id" type="string" indexed="true" stored="true" />
<field name="category" type="text" indexed="true" stored="true" />
<field name="subcategory" type="text" indexed="true" stored="true" />
<field name="pdate" type="date" indexed="true" stored="true" />
<field name="size" type="int" indexed="true" stored="true" />
</fields>