我将数据从mysql db导入solr文档。一切都很好,但我有一个表有一个复合键(一对列作为主键) - > post_locations 表的主键是(post_id,location_id)。 但我的post_id是我的solr文档的主键,所以当从post_location表导入数据时,location_ids被覆盖。是否可以将location_ids(类型为int)作为数组获取(因为可能有多个一个location_id的帖子)。
答案 0 :(得分:1)
对于MySQL,您可以使用GROUP BY
和GROUP_CONCAT
获取在一列中分组在一起的字段的所有值,以,
分隔。然后,您可以使用RegexTransformer
和splitBy
为该字段将字段索引为multiValued
(实际上将其索引为数组)。我在之前的回答中发布了an example of this。您也可以通过在DIH中使用依赖实体条目来执行此操作,但它需要比执行GROUP BY
和GROUP_CONCAT
更多的SQL查询。
如果您想为每个条目添加一行,则可以使用构建自定义uniqueKey
,使用CONCAT
在MySQL端构建聚合/复合键。