【发布时间】:2013-10-12 12:25:12
【问题描述】:
使用XPathEntityProcessor,我正在索引以下 xml 文件(只是一个示例):
<shop>
<vegitable>
....
</vegitable>
<fruit>
<property>
<kind>apple</kind>
<value>3.08</value>
<from>USA</from>
</property>
<property>
<kind>banana</kind>
<value>8.5</value>
<from>CA</from>
</property>
<property>
<kind>painaple</kind>
<value>102.8</value>
<from>CA</from>
</property>
</fruit>
....
....
....
</shop>
我希望将苹果属性存储在一个字段中,并将所有其他属性存储到另一个字段中,以便我可以将其用于查看目的。 Bellow 是我的 solr-config.xml 文件,但 solr 不处理这两个字段。
<dataConfig>
<dataSource type="FileDataSource" encoding="UTF-8" />
<document>
<entity name="drug"
processor="XPathEntityProcessor"
stream="true"
forEach="/shop/"
url="/data/shop.xml"
transformer="RegexTransformer,DateFormatTransformer"
>
....
....
<field column="apple-imported-form" xpath="/shop/fruit/property/[kind='apple']/from"/>
<field column="apple-imported-value" xpath="/shop/fruit/property/[kind='apple']/value"/>
</entity>
</document>
</dataConfig>
在 solr 上阅读 XPathEntityProcessor 上的文档时,我发现以下几行:
XPathEntityProcessor 实现了一个流解析器,它支持 xpath 语法的子集。不支持完整的 xpath 语法,但 涵盖了大多数常见用例。
但是没有提到 Xpath 未涵盖的内容。请指导我。
提前致谢!!
【问题讨论】:
-
我看到你的 xml 不好
没有结尾 -
我也不知道 solr 但可能错误是因为 xpath 错误。也许你可以把它改成 /shop/fruit/property[descendant::kind='apple']/from
-
感谢 Darka 的输入,请找到更正的 xml,我也尝试使用您给定的语法,但它无法正常工作 n solr,我正在尝试将 xml 解析为 solr 文档,这看起来很不可能。
-
如果你只是尝试如果它有效 /shop/fruit/property/kind 和 /shop/fruit/property/from 怎么办
标签: xml xpath solr dataimporthandler