是否有可能让SOLR DIH忽略具有无效纬度/经度值的文档的空间字段?

时间:2015-02-19 10:29:22

标签: solr dataimporthandler

我试图将数据从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条目有错误的默认值就省略字段 position

我可以在DataImportHandler的配置文件中定义哪些内容可以提供我想要的结果吗?

1 个答案:

答案 0 :(得分:0)

您可以在两个阶段中应用更改:

  1. 您可以在DIH内部使用变压器
  2. 您可以使用自定义更新请求处理器(URP)链来替换或删除字段
  3. 因此,例如,您可以使用RegexTransformer用空格替换已知的错误值。如果(空白但存在的字段)导致问题,您可以在自定义链中使用RemoveBlankFields删除它们。