我需要通过文件系统抓取递归来查找任何xml文件,以便对这些文件进行索引,运行Solr 6.4
在第一次运行中,我使用了带有2个节点的Solr云示例,并使用以下配置添加了数据导入处理程序:
<dataConfig>
<dataSource type="FileDataSource"
encoding="ISO-8859-1" />
<document>
<entity
name="document"
processor="FileListEntityProcessor"
baseDir="/path/to/xmldata"
fileName=".*\.xml$"
recursive="true"
rootEntity="false"
dataSource="null">
<entity
name="xpathE"
processor="XPathEntityProcessor"
url="${document.fileAbsolutePath}"
useSolrAddSchema="true"
stream="true"
onError="continue">
</entity>
</entity>
</document>
</dataConfig>
在我启动dataimport进程后,Solr接入访问文件系统并以Message结束,获取了148个文档。 但是,索引中没有添加任何文档。
以下是importHandler的反馈:
{
"responseHeader": {
"status": 0,
"QTime": 0
},
"initArgs": [
"defaults",
[
"config",
"DIHconfigfile.xml"
]
],
"command": "status",
"status": "idle",
"importResponse": "",
"statusMessages": {
"Total Requests made to DataSource": "0",
"Total Rows Fetched": "148",
"Total Documents Processed": "0",
"Total Documents Skipped": "0",
"Full Dump Started": "2017-02-09 10:53:03",
"": "Indexing completed. Added/Updated: 0 documents. Deleted 0 documents.",
"Committed": "2017-02-09 10:53:03",
"Time taken": "0:0:0.140"
}
}
为什么Solr没有向索引添加单个文档?
答案 0 :(得分:1)
要回答我自己的问题,以防万一有人遇到相同的问题:
如果DIH在获取的文件中找不到任何匹配的字段,则会发生上述问题。
在我的情况下,没有有效的动态模式,也没有与XML标记匹配的Solr字段的Xpath定义,例如:<field column="name" xpath="/document/head/Person"/>
只要schema.xml
中没有必需的solr归档,Solr都不会记录任何错误。如果没有单个Solr字段设置了required=true
属性,那么对于Solr来说,一切都是可选的。