我有很多文档存储在一个文件夹中,我正在使用tika定期将它们导入Solr。
data-import.xml文件为:
<dataSource name="tika" type="BinFileDataSource" />
<document>
<entity dataSource="tika" name="files" rootEntity="false"
processor="FileListEntityProcessor"
baseDir="/home/user/public_html/files" fileName=".*.(doc)|(pdf)|(docx)"
onError="skip"
recursive="true">
<field column="fileAbsolutePath" name="id" />
<field column="fileSize" name="size_i" />
<field column="fileLastModified" name="lastModified_s" />
<entity
name="documentImport"
processor="TikaEntityProcessor"
url="${files.fileAbsolutePath}"
format="text"
dataSource="tika">
<field column="file" name="fileName_s"/>
<field column="Author" name="author_s" meta="true"/>
<field column="title" name="title_s" meta="true"/>
<field column="text" name="details_s"/>
<field column="text" name="_text"/>
</entity>
</entity>
</document>
</dataSource>
目前发生的情况是solr正在读取所有文件,但它实际上只处理第一个文件,似乎一旦导入第一个文件后,文档指针就会设置为#2,并且在其余文件中保持为空。这似乎只在填充的文档上增加。
这是导入字段时solr的输出,正如您在第一个文件中看到的那样,导入文档#1(D#1)和文档#2(D#2)已创建,D#1有内容,D#2为空。
在任何后续行上,D#1都没有创建,但D#2是并且保持为空。
"----------- row #1-------------",
"fileSize",
2161971,
"fileLastModified",
"2013-06-27T15:40:17Z",
"fileAbsolutePath",
"/home/user/public_html/files/test1.pdf",
"fileDir",
"/home/user/public_html/files",
"file",
"test1.pdf",
null,
"---------------------------------------------",
"entity:documentImport",
[
"document#1",
[
"query",
"/home/user/public_html/files/test1.pdf",
"time-taken",
"0:0:0.0",
null,
"----------- row #1-------------",
"text",
"blah! testing.",
"title",
"testing",
"Author",
"user",
null,
"---------------------------------------------"
],
"document#2",
[]
],
null,
"----------- row #2-------------",
"fileSize",
567396,
"fileLastModified",
"2014-02-17T14:46:55Z",
"fileAbsolutePath",
"/home/user/public_html/files/test2.pdf",
"fileDir",
"/home/user/public_html/files",
"file",
"test2.pdf",
null,
"---------------------------------------------",
"entity:documentImport",
[
"document#2",
[]
],
有人能告诉我如何重置documentImport上的指针吗?或者我如何让它导入所有文件而不是一个文件?
非常感谢
更新#1:我已经使用相同的配置安装了Solr 4.10.3,它现在正在运行,我相信这个问题可能是由多种因素造成的,但最引人注目的是在4.10.3和5.0.0 之间从Tika 1.5升级到Tika 1.7
如果有人能在我继续做这件事之前确认一下。
我在Solr中使用了Tika,下面是我的data-config.xml
<dataConfig>
<dataSource name="bin" type="BinFileDataSource" />
<document>
<entity name="files" dataSource="null" rootEntity="false"
processor="FileListEntityProcessor"
baseDir="/home/user/public_html/files" fileName=".*.(doc)|(pdf)|(docx)"
onError="skip"
recursive="true">
<field column="fileAbsolutePath" name="id" />
<field column="fileSize" name="size" />
<field column="fileLastModified" name="lastModified" />
<entity
name="documentImport" dataSource="bin"
processor="TikaEntityProcessor"
url="${files.fileAbsolutePath}"
format="text" onError="skip">
<field column="file" name="fileName"/>
<field column="Author" name="author" meta="true"/>
<field column="title" name="title" meta="true"/>
<field column="text" name="text"/>
</entity>
</entity>
</document>