【问题标题】:preserve association in multivalued in solr在 solr 中保留多值的关联
【发布时间】:2014-04-28 08:40:15
【问题描述】:

我的 solr 数据源中有多值字段。样本是

23606哈佛大学耶鲁大学康奈尔大学TUFTS 大学亚利桑那大学学士文凭大师大师博士

在上面的示例中,该用户获得了哈佛大学的学士学位、耶鲁大学的文凭、康奈尔大学的硕士、TUFTS 的硕士和亚利桑那州的博士学位。 现在如果我搜索拥有学士学位并毕业于哈佛的用户,我会得到这个用户,这是正确的。 MyDomain:8888/solr/mycol/select?facet=true&q=:&fq=degree_level:Bachelors&fq=institution:Harvard+University

但是如果我想要那些拥有康奈尔大学学士学位的人,我也会得到这个用户,这是不正确的! MyDomain:8888/solr/mycol/select?facet=true&q=:&fq=degree_level:Bachelors&fq=institution:Cornell+University
问题是:如何在 solr 中保留多值的排序/映射?
编辑:
顺便说一句,我知道我可以通过创建新领域来解决我的问题,以包含学位与大学的连接(即“Bachelors_Harvard University”、“Diploma_Yale Universety”等),但我需要一个基于 solr core 的解决方案本身,因为我有很多具有很多组合的多值字段。

【问题讨论】:

  • 您找到解决方案了吗?我面临同样的问题。如果你发现了什么,请分享。
  • 下面你会找到一些建议
  • 请参阅stackoverflow.com/a/24953913/1008692 以获得可能的答案。该脚本基于 solr 3.6。

标签: solr multivalue


【解决方案1】:

以下是一些建议的列表

  • 尝试使用动态字段

    并动态创建字段,同时将 degree_level_Bachelors 索引为 Harward University 等。因此,当您想过滤学士学位时,请过滤字段 degree_level_Bachelors。同样,如果您想允许对机构进行过滤,请为机构创建一个动态字段。
  • 您可以预先定义如何存储数据: 等
    然后过滤所需的正则表达式。
    例如:
    fq=educationDetails:2009@Bachelors@Harvard@*
    这将为您提供 2009 年哈佛学士学位的所有记录。 您将不得不为所有不同的过滤器提供正则表达式。
  • 两个集合以正确建模使用 {!join} 查询的用户和学位之间的一对多关系
  • 一个“用户级别”粒度级别的集合,通过 Solr 的字段折叠支持进行重复数据删除。

【讨论】:

  • 我的动态字段似乎不起作用。我在 data-config.xml 文件中添加了以下内容:<field column="option_type_value" name="variant_option_type_value_${option_type}">。但它没有用。如何在动态字段中填充数据?
  • 好的。我用了变压器,它起作用了。非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
  • 2011-02-10
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 2020-09-14
  • 2011-09-02
相关资源
最近更新 更多