美文网首页
记录用Solr DIH对于多值字段的处理方法

记录用Solr DIH对于多值字段的处理方法

作者: Ombres | 来源:发表于2019-05-28 20:56 被阅读0次

    背景

    维护之前的Solr集群,由于业务需要,新增了两个字段,都是多值字段。
    数据的增量、全量导入程序用的是Solr自己的DIH(Data Import Handler),数据源是MySQL。
    由于Solr字段是多值的,结果需要时一个list,而数据源是中每个字段存储的是一个字符串,每个属性用,分隔。

    解决方法

    在DIH中,可以对entity指定transformer,这里我们需要用到的就是其中一种RegexTransformer,这里我们需要修改data-config.xml

    1. entity 标签中加入如下属性,指定相应的解释器(我自己的理解哈,感觉比转换器更好理解)。这里可以根据需要添加不同的解析器,多个解析器之间以,分隔,他们按照填写的先后顺序执行,每种解释器基本上都只会解析它功能下的几个属性,比如RegexTransformer,只会解析regexsplitBy
    transformer="RegexTransformer"
    transformer="RegexTransformer,DateFormatTransformer"
    
    1. entity 下加入field 标签
    <field column="solr_field_name" sourceColName="database_field_name" splitBy="," />
    
    1. 更新data-config.xml后,重新使用DIH导入数据发现相应的字段已经以多值的形式添加到solr中了。

    相关文章

      网友评论

          本文标题:记录用Solr DIH对于多值字段的处理方法

          本文链接:https://www.haomeiwen.com/subject/jfmjtctx.html