如何在solr中使用dih处理复合键

时间:2014-07-16 11:00:10

标签: solr

我将数据从mysql db导入solr文档。一切都很好,但我有一个表有一个复合键(一对列作为主键) - > post_locations 表的主键是(post_id,location_id)。  但我的post_id是我的solr文档的主键,所以当从post_location表导入数据时,location_ids被覆盖。是否可以将location_ids(类型为int)作为数组获取(因为可能有多个一个location_id的帖子)。

1 个答案:

答案 0 :(得分:1)

对于MySQL,您可以使用GROUP BYGROUP_CONCAT获取在一列中分组在一起的字段的所有值,以,分隔。然后,您可以使用RegexTransformersplitBy为该字段将字段索引为multiValued(实际上将其索引为数组)。我在之前的回答中发布了an example of this。您也可以通过在DIH中使用依赖实体条目来执行此操作,但它需要比执行GROUP BYGROUP_CONCAT更多的SQL查询。

如果您想为每个条目添加一行,则可以使用构建自定义uniqueKey,使用CONCAT在MySQL端构建聚合/复合键。