Solr Group By Field Tokens&计数

时间:2017-01-03 14:55:43

标签: solr faceted-search

我正在使用Solr 6.3.0来存储具有3个级别的完整树层次结构。每个文档都是一个节点,它在树中的路径存储在一个字段中,例如,对于3级节点treePath:>522>12>7或对2级节点treePath:>522>12

为特定的2级节点计算孩子很容易:我可以在treePath:/>522>12>.*/上进行正则表达式查询。 此外,我可以使用/>[0-9]+>[0-9]>.+/

等正则表达式查询来计算所有3级节点

我有兴趣将平均分支因子设置为2级。我认为这应该可以使用分组查询,该查询将按treePath的前缀进行分组。

我看到的棘手部分是分组文件,这些文档共享给定字段的前缀而不指定实际前缀并让Solr匹配它们。

欢迎任何帮助:)

谢谢!

编辑:

我发现我可以简单地计算3级节点并将其除以2级节点的数量并得到平均分支因子,但我仍然有兴趣找出是否有一种按字段对文档进行分组的方法前缀

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案是将level2和level3存储在两个不同的字段中,然后在level2字段上的facet将为您提供所有level2s的计数。将此计数相加并除以元素数将为您提供分支因子。

此解决方案优于您的解决方案的优势在于,它可以应用于限制您要考虑的树的查询。