2012-03-27 123 views
1

我使用DIH来索引本地文件系统。但没有存储文件路径,大小和上次修改的字段。在schema.xml中,我定义:如何在使用TikaEntityProcessor时在Solr中存储文件路径

<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> 

而且还定义蒂卡数据-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。任何想法?

在此先感谢。

+0

在solr邮件列表上提问:http://www.mail-archive.com/[email protected]/msg64225.html。我也在那里回答。 – javanna 2012-03-28 15:12:35

回答

2

这些数据并不来自蒂卡元数据,所以你应该将它们移到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> 
1

你并不需要声明在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测试)。

相关问题