我需要索引一些使用命名空间的 XML 文档,例如:
<pm:Kroot>
<pm:root>
<pm:meta>
<dc:id xmlns:dc="http://purl.org/dc/elements/1.1/">1</dc:id>
<dc:source>
<dc:source>
<pm:link pm:description="Tele" pm:source="8326"/>
</dc:source>
</dc:source>
</pm:meta>
</pm:root>
</pm:Kroot>
现在,当我使用以下 DataImport 时,Solr 设法获取 ID,但无法索引 Attributes 值:
<dataConfig>
<dataSource type="FileDataSource" encoding="UTF-8" />
<document>
<entity name="article"
url="/sample.xml"
processor="XPathEntityProcessor"
stream="true"
forEach="/Kroot/root" >
<field column="id" xpath="/Kroot/root/meta/id" />
<field column="news_id" xpath="/Kroot/root/meta/source/source/link/@source" />
<field column="news_name" xpath="/Kroot/root/meta/source/source/link/@description" />
</entity>
</document>
通过从 XML 文件中删除属性名称空间,Solr 设法索引所有数据!现在我正在寻找解决方案,但我找不到这种行为的解释。Solr wiki 说,在命名空间的情况下,我们应该只使用属性名称而不使用命名空间,就像我一样。我正在使用 Solr 4.1 顺便说一句。