0

我需要索引一些使用命名空间的 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 顺便说一句。

4

1 回答 1

0

你可以试试例如/Kroot/root/meta/source/source/link[@description]

于 2013-02-01T04:41:43.673 回答