gpt4 book ai didi

Solr 分层方面 : how to get all 2nd-level values for the top N 1st-level values

转载 作者:行者123 更新时间:2023-12-03 17:54:16 24 4
gpt4 key购买 nike

我有一对多值索引字段,author 和 author_norm,并且我使用 https://wiki.apache.org/solr/HierarchicalFaceting#Indexed_Terms 中描述的模式为它们创建了一个分层方面字段。 .构面值如下所示:

0/Blow, J
1/Blow, J/Blow, Joe
1/Blow, J/Blow, Joseph
1/Blow, J/Blow, Jennifer
0/Smith, M
1/Smith, M/Smith, Michelle
1/Smith, M/Smith, Michael
1/Smith, M/Smith, Mike

作者与文章记录相关联,在大多数情况下,一篇文章会有很多作者。这意味着对于返回 100 多篇文章的 Solr 查询,可能代表 1000 多位作者。

我的问题是,当我向用户显示这个层次结构时,由于我的 facet.limit 和 facet.mincount 被设置为合理的值,我没有完整的第二级值集,即第二级我的等级制度将在某个时刻被切断。我会有这样的事情:
  • 吹,J (30)
  • 吹,乔 (17)
  • 打击, 约瑟夫 (9)
  • 史密斯,男(22)
  • 史密斯米歇尔 (14)
  • 史密斯迈克尔 (6)

  • 我还想在此列表中包含“Blow, Jennifer (4)”和“Smith, Mike (2)”条目,但它们没有在响应中返回,因为 mincount cutoff 为 5。所以我最终得到了令人困惑的显示(17 + 9 != 30 等)。

    一种选择是在每个二级列表的底部放置一个“(更多)”链接,并通过 ajax 获取完整集。我对这个解决方案并不感冒,因为它要求用户工作/点击的次数比他们真正应该做的要多,还因为我无法控制初始 2 级列表的长度;有时它会是 3 个名字 +“(更多)”,有时是 2 个甚至 1 个。那太丑了。

    我可以只为我的分层 facet 字段设置 mincount=1 和 limit=-1,但这会很疯狂,因为对于大型查询(100k 次点击),我将获取 100k+ 个我不需要的值。我只需要前 N 个一级值的全套二级值。

    因此,除非有人有更好的建议,否则我假设我需要进行某种后续查询。毕竟,这就是我真正要问的:有没有办法在单个后续查询中获取这些 2nd-level 值。给定一个初始的 solr 响应,我怎样才能获得层次结构的前 N ​​个第一级值的所有第二级排列?

    谢谢!

    PS,我使用的是 Solr 4.0。

    最佳答案

    您可以修改枢轴中任何级别的 mincount:

    facet.pivot=fieldA,filedB&f.fieldA.limit=3&f.fieldB.limit=-1

    当两个字段相同时会出现问题 facet.pivot=fieldA,filedA在这种情况下,我可能会创建 fieldA 的副本作为 fieldB

    关于Solr 分层方面 : how to get all 2nd-level values for the top N 1st-level values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904982/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com