在solr中处理一对多关系
我有一个要求,我必须处理SOLR中的一对多关系。 比如说,一个实体人可以有多个名字(名字、姓氏、名字类型)。现在的问题是,如果我在schema.xml中将first-name、last-name和name-type设置为多值字段,这将不会有帮助,因为我无法确定哪个名字将与哪个姓氏和哪个名称类型相关联。 我想要的是,如果我让一个人用两个名字说P1[名字\类型1,名字1,姓氏1]&[名字\类型2,姓氏2,姓氏2]。 现在,如果我对firstName1进行全文搜索,那么我应该返回P1。在solr中处理一对多关系,solr,Solr,我有一个要求,我必须处理SOLR中的一对多关系。 比如说,一个实体人可以有多个名字(名字、姓氏、名字类型)。现在的问题是,如果我在schema.xml中将first-name、last-name和name-type设置为多值字段,这将不会有帮助,因为我无法确定哪个名字将与哪个姓氏和哪个名称类型相关联。 我想要的是,如果我让一个人用两个名字说P1[名字\类型1,名字1,姓氏1]&[名字\类型2,姓氏2,姓氏2]。 现在,如果我对firstName1进行全文搜索,那么我应该返回P1。 在SOLR中是
在SOLR中是否有处理此用例的方法?如果您的文档如下所示:
name.first.[type] = John
name.last.[type] = Smith
可以定义为动态字段:
<dynamicField name="name.first.*" type="text" indexed="true" stored="true" />
<dynamicField name="name.last.*" type="text" indexed="true" stored="true" />
并在您的配置中包含:
<copyField source="name.first.*" dest="text" maxChars="256" />
<copyField source="name.last.*" dest="text" maxChars="256" />
它会将您的所有姓名复制到一个“文本”字段中,您可以在该字段中进行搜索
使用这种结构,如果字段值被存储(而不是仅仅索引),那么就可以从个人文档中重建所有姓名。您的搜索要求是什么。您是只需要对姓名进行自由文本搜索,还是需要能够搜索特定的姓名类型,例如[specific name type]=“John Smith”?可以使用solr中的分组…@prunge请查看编辑