我在本地机器d:/tmp/docs
位置有一些文档文件,我想使用Apache Solr和Tika对它们进行索引。以下是我的data-config.xml
文件。
<dataSource type="BinFileDataSource" />
<document>
<entity name="file_Import" dataSource="null" rootEntity="false"
processor="FileListEntityProcessor"
baseDir="D:/temp/docs" 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"
processor="TikaEntityProcessor"
url="${files.fileAbsolutePath}"
format="text">
<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>
当我尝试将这些文件导入 solr 时,出现以下异常:
Caused by: java.net.MalformedURLException: no protocol: null
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.apache.solr.handler.dataimport.URLDataSource.getData(URLDataSource.java:90)
... 11 more
我发现 sorl 无法找到d:/temp/docs
文件夹。
不知道如何解决。任何帮助表示赞赏。
已解决...
我的数据配置中有多个数据源标签.xml其中一个是<dataSource type="URLDataSource" />
导致问题.. 所以我删除了所有的数据源,只保留了<dataSource type="BinFileDataSource" />
它奏效了... :)
检查数据源 baseDir 的 url
尝试从
baseDir="D:/temp/docs"
自
baseDir="D:/temp/docs/"
并更改文件名(如*.*
)以索引该文件夹中的所有文档