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