1

我能够使用 solr 4.3.0 中的数据导入处理程序成功地索引 pdf、doc、ppt 等文件。

我的 data-config.xml 看起来像这样 -

<dataConfig>
    <dataSource name="bin" type="BinFileDataSource" />
    <document>
        <entity name="f" dataSource="null" rootEntity="false"
            processor="FileListEntityProcessor"
            baseDir="C:\Users\aroraarc\Desktop\Impdo" 
            fileName=".*\.(DOC)|(PDF)|(pdf)|(doc)|(docx)|(ppt)|(pptx)|(xls)|(xlsx)|(txt)" onError="skip"
            recursive="true">

            <field column="fileAbsolutePath" name="path" />
            <field column="fileSize" name="size" />
            <field column="fileLastModified" name="lastmodified" />
            <field column="file" name="fileName"/>

             <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" name="content"/>

          </entity>
        </entity>
    </document>
</dataConfig>

但是在文件名字段中,我想插入不带扩展名的纯文件名。例如 - 而不是“HelloWorld.txt”,我只想在文件名字段中插入“HelloWorld”。我如何实现这一目标?

提前致谢!

4

1 回答 1

1

检查ScriptTransformer以在索引之前替换或更改值。

例子 -

数据配置 - 添加自定义字段 -

<script><![CDATA[
        function changeFileName(row){
            var fileName= row.get('fileName');
            // Replace or remove the extension .. e.g. from last index of . 
            file_name_new = file_name.replace ......
            row.put(fileName, row.get('file_name_new'));
            return row;
        }
]]></script>

实体映射 -

<entity name="f" transformer="script:changeFileName" ....>
    ......
</entity>
于 2013-07-03T05:07:12.737 回答