我正在将数据从mysql db导入到solr文档中。一切都很好,但是我有一个表,它有一个复合键(一对列作为主键),post_locations表的->主键是(post_id,location_id)。但是,我的post_id是solr文档的主键,所以当从post_location表导入数据时,location_ids是overwritten.Is,可以将location_ids(int类型)作为数组(因为post可以有多个location_id )。
发布于 2014-07-16 12:44:25
对于MySQL,您可以使用GROUP BY和GROUP_CONCAT获取一个字段的所有值,该字段分组在一个列中,由,分隔。然后,可以使用该字段的RegexTransformer和splitBy将字段索引为multiValued (实际上,将其索引为数组)。我在先前的回答中发布了an example of this。您也可以通过在DIH中包含依赖实体条目来实现这一点,但是它需要比执行GROUP BY和GROUP_CONCAT更多的SQL查询。
如果希望为每个条目设置一行,则可以使用自定义uniqueKey,使用CONCAT在MySQL侧构建聚合/复合键。
https://stackoverflow.com/questions/24779088
复制相似问题