我试图将数据从Oracle数据库导入到SOLR索引 . Dabatase实体确实具有lat / long值,索引中的文档应具有字段位置 . 因此,data-config.xml中的相应配置是
<field column="LONGITUDE" name="long_d" />
<field column="LAT" name="lat_d" />
<field column="bl" name="position" template="${data.LAT},${data.LONGITUDE}"/>
其中position字段定义为
<field name="position" type="location_rpt" indexed="true" stored="true" multiValued="false"/>
在schema.xml文件中 .
我所遇到的问题是严重选择了lat和long的数据库条目的默认值999.9,DIH不接受这些值作为位置字段的导入值 .
因此,我的目的是在DB条目具有错误的默认值时简单地省略字段位置 .
我可以在DataImportHandler的配置文件中定义一些能给我想要的结果吗?
1 回答
您可以在两个阶段中应用更改:
您可以在DIH内部使用变压器
您可以使用自定义更新请求处理器(URP)链来替换或删除字段
因此,例如,您可以使用RegexTransformer将已知的错误值替换为空白 . 如果(空白但存在的字段)导致问题,您可以在自定义链中使用RemoveBlankFields删除它们 .