保持多值in-solr中的关联
我的solr数据源中有多值字段。样本是 <doc> <str name="id">23606</str> <arr name="institution"> <str>Harvard University</str> <str>Yale Universety</str> <str>Cornell University</str> <str>TUFTS University</str> <str>University of Arizona</str> </arr> <arr name="degree_level"> <str>Bachelors</str> <str>Diploma</str> <str>Master</str> <str>Master</str> <str>PhD</str> </arr> </doc> 23606 哈佛大学 耶鲁大学 康奈尔大学 塔夫茨大学 亚利桑那大学 单身汉 文凭 主人 主人 博士 在上面的例子中,该用户获得了哈佛大学的学士学位、耶鲁大学的文凭、康奈尔大学的硕士学位、塔夫茨大学的硕士学位和亚利桑那州的博士学位。 现在,如果我搜索拥有学士学位并毕业于哈佛大学的用户,我将得到这个用户,这是正确的。保持多值in-solr中的关联,solr,multivalue,Solr,Multivalue,我的solr数据源中有多值字段。样本是 <doc> <str name="id">23606</str> <arr name="institution"> <str>Harvard University</str> <str>Yale Universety</str> <str>Cornell University</str> <str>TUFTS University</str> &
MyDomain:8888/solr/mycl/select?facet=true&q=:&fq=degree\u level:Bachelors&fq=institute:Harvard+University
但是如果我想要那些有康奈尔大学学士学位的人,我也会得到这个用户,这是不正确的!
MyDomain:8888/solr/mycl/select?facet=true&q=:&fq=degree\u level:Bachelors&fq=institute:Cornell+University
问题是:如何在solr中保持多值排序/映射?
编辑:
顺便说一句,我知道我可以通过创建新的领域来解决我的问题,包括学位与大学的衔接(例如,“哈佛大学学士”、“耶鲁大学文凭”,等等)但是我需要一个基于solr core本身的解决方案,因为我有很多多值字段和很多组合。下面是一些建议的列表
- 尝试使用动态字段
动态创建字段,同时将学位、级别、学士学位与哈佛大学等建立索引。所以,当你想对学士学位进行筛选时,就要对专业学位和级别的学士学位进行筛选。类似地,如果要允许对机构进行筛选,请为机构创建一个动态字段。 -
您可以预先定义存储数据的方式:
等等。
然后对所需的正则表达式进行筛选。
例如:
fq=教育详细信息:2009@Bachelors@哈佛@*
这将为您提供2009年哈佛大学学士学位的所有记录。 您必须为所有不同的过滤器提供正则表达式。 - 两个集合,用于正确建模用户和使用{!join}查询的度之间的一对多关系
- 一个粒度为“用户级”的集合,通过Solr的字段折叠支持消除重复数据。
。但它不起作用。如何在动态字段中填充数据?好的。我用了变压器,它工作了。非常感谢你的帮助!!