我正在使用Solr 6.3.0来存储具有3个级别的完整树层次结构。每个文档都是一个节点,它在树中的路径存储在一个字段中,例如,对于3级节点treePath:>522>12>7
或对2级节点treePath:>522>12
。
为特定的2级节点计算孩子很容易:我可以在treePath:/>522>12>.*/
上进行正则表达式查询。
此外,我可以使用/>[0-9]+>[0-9]>.+/
我有兴趣将平均分支因子设置为2级。我认为这应该可以使用分组查询,该查询将按treePath
的前缀进行分组。
我看到的棘手部分是分组文件,这些文档共享给定字段的前缀而不指定实际前缀并让Solr匹配它们。
欢迎任何帮助:)
谢谢!
我发现我可以简单地计算3级节点并将其除以2级节点的数量并得到平均分支因子,但我仍然有兴趣找出是否有一种按字段对文档进行分组的方法前缀
答案 0 :(得分:1)
一种可能的解决方案是将level2和level3存储在两个不同的字段中,然后在level2字段上的facet将为您提供所有level2s的计数。将此计数相加并除以元素数将为您提供分支因子。
此解决方案优于您的解决方案的优势在于,它可以应用于限制您要考虑的树的查询。