DateFormatTransformer不与Data Import Handler中的FileListEntityProcessor一起使用

时间:2016-06-01 17:49:53

标签: indexing solr apache-tika dih

在索引来自我系统上的本地文件夹的数据时,我正在使用下面给出的配置。但是,lastmodified属性的格式为" Wed 23 May 09:48:08 UTC" ,这不是solr用于过滤查询的标准格式。 所以,我正在尝试格式化data-config.xml中的lastmodified属性,如下所示。

<dataConfig>
    <dataSource name="bin" type="BinFileDataSource" />
    <document>
        <entity name="f" dataSource="null" rootEntity="false"
            processor="FileListEntityProcessor"
            baseDir="D://FileBank" 
            fileName=".*\.(DOC)|(PDF)|(pdf)|(doc)|(docx)|(ppt)" onError="skip"
            recursive="true" transformer="DateFormatTransformer">

            <field column="fileAbsolutePath" name="path" />
            <field column="fileSize" name="size" />
            <field column="fileLastModified" name="lastmodified" dateTimeFormat="YYYY-MM-DDTHH:MM:SS.000Z" locale="en"/>
            <entity name="tika-test" dataSource="bin" processor="TikaEntityProcessor"
            url="${f.fileAbsolutePath}" format="text" onError="skip">
                <field column="Author" name="author" meta="true"/>
                <field column="title" name="title" meta="true"/>
                <!--<field column="text" />-->          
            </entity>
        </entity>
    </document>
</dataConfig>

但是变压器没有效果,并且再次索引相同的格式。有人有这个成功吗?上面的配置是正确的,还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

您提供的dateTimeFormat似乎不正确。大写和小写字符have different meaning。您显示的格式也与您尝试解析的日期文本不匹配。所以,它可能使它保持无与伦比。

此外,如果您有多种不同的日期格式,则可以在 DIH运行后通过创建自定义UpdateRequestProcessor链来解析它们。您可以看到 schemaless 示例,其中有多种日期格式作为自动映射的一部分,但您也可以明确地为特定字段执行相同的操作。