Solr 按字段标记和计数分组

Solr Group By Field Tokens & Count

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

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

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

我有兴趣获得第 2 级的平均分支因子。我认为这应该可以使用按 treePath.

前缀分组的分面查询来实现

据我所知,棘手的部分是将共享给定字段前缀的文档分组,而不指定实际前缀并让 Solr 匹配它们。

欢迎任何帮助:)

谢谢!


编辑:

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

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

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