我正在使用DIH对本地文件系统进行索引。但文件路径、大小和上次修改的字段没有存储。在schema.xml中,我定义了:
<fields>
<field name="title" type="string" indexed="true" stored="true"/>
<field name="author" type="string" indexed="true" stored="true" />
<!--<field name="text" type="text" indexed="true" stored="true" />
liang added-->
<field name="path" type="string" indexed="true" stored="true" />
<field name="size" type="long" indexed="true" stored="true" />
<field name="lastmodified" type="date" indexed="true" stored="true" />
</fields>
并定义了tika-data-config.xml:
<dataConfig>
<dataSource name="bin" type="BinFileDataSource" />
<document>
<entity name="f" dataSource="null" rootEntity="false"
processor="FileListEntityProcessor"
baseDir="E:/my_project/ecmkit/infotouch"
fileName=".*.(DOC)|(PDF)|(pdf)|(doc)|(docx)|(ppt)" onError="skip"
recursive="true">
<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="text"/> -->
<field column="fileAbsolutePath" name="path" />
<field column="fileSize" name="size" />
<field column="fileLastModified" name="lastmodified" />
</entity>
</entity>
</document>
</dataConfig>
Solr版本为3.5。知道吗?
提前谢谢。
这些数据不是来自Tika元数据,所以应该将它们移动到FileListEntityProcessor
实体中,如下所示:
<dataConfig>
<dataSource name="bin" type="BinFileDataSource" />
<document>
<entity name="f" dataSource="null" rootEntity="false"
processor="FileListEntityProcessor"
baseDir="/home/luca/Documents"
fileName=".*.(DOC)|(PDF)|(pdf)|(doc)|(docx)|(ppt)" onError="skip"
recursive="true">
<field column="fileAbsolutePath" name="path" />
<field column="fileSize" name="size" />
<field column="fileLastModified" name="lastmodified" />
<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>
您不需要在DIH配置中声明这些字段,只需在schema.xml:中定义即可
<field name="fileAbsolutePath" type="string" indexed="true" stored="true" multiValued="false" />
<field name="file" type="string" indexed="true" stored="true" multiValued="false" />
<field name="fileLastModified" type="string" indexed="true" stored="true" multiValued="false" />
它们是基于FileListEntityProcessor
自动填充的(在solr 4.6中测试)。