使用Solr Dataimporthandler索引xml属性值

时间:2013-01-31 16:10:51

标签: xml solr namespaces

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

1 个答案:

答案 0 :(得分:0)

你能尝试一下吗? /Kroot/root/meta/source/source/link[@description]