我使用solr索引具有无限数量相关实体的实体
表1
id名称 1 | AA 2 | BB 3 | cc
表2
id field1 field2
1 |适用于|纽约 1 |喜欢去|巴黎
如您所见,每一行代表一个与ID为1的实体相关的实体,哪一个值对应哪个重要。
如何使用Solr的数据导入处理程序实现此目的?
我在data-config.xml中使用了SubEntity,在field1和field2中使用了multiValued = true,但是索引文档看起来像
id 1 field1:[适用于,喜欢去] field2:[纽约,巴黎]
并且列之间的关系完全丢失了。如果一个搜索在巴黎工作,他也可以获得实体1.我应该怎么做才能维持这种关系?非常感谢。
答案 0 :(得分:0)
schema.xml中的模式定义
id (类型字符串)
名称(类型字符串)
worksIn (类型字符串,多值= true) - 如果需要多值,您可以选择
likesToGo (类型字符串,多值=真) - 多值在这里是有意义的,很可能有更多的地方去,无论如何你的要求
编制索引后的示例文档
1,aa,works在[Newyork,New Jeysey],喜欢ToGo [Paris,Moon]
2,bb,works在[达拉斯],喜欢ToGo [NewYork,Sun]
查询
对于“在巴黎工作”,查询是“worksIn:Paris”。 你得到id为1的doc 对于“喜欢去晒太阳”,查询是“likesToGo:sun”。 你得到id为2的文档