Solr DataImportHandler:我可以使用XPathEntityProcessor从xml
发布时间:2020-12-16 23:06:01 所属栏目:百科 来源:网络整理
导读:我有一些 XML可以摄入到Solr中,这听起来像是一个旨在由DataImportHandler解决的用例.我想要做的是从一个XML属性中提取列名,从另一个属性中提取值.这是我的意思的一个例子: document data ref="reference.foo" valuebar/value /data/document 从这个xml片段,
我有一些
XML可以摄入到Solr中,这听起来像是一个旨在由DataImportHandler解决的用例.我想要做的是从一个XML属性中提取列名,从另一个属性中提取值.这是我的意思的一个例子:
<document> <data ref="reference.foo"> <value>bar</value> </data> </document> 从这个xml片段,我想添加一个名称为reference.foo和值栏的字段. DataImportHandler包含一个用于处理XML文档的XPathEntityProcessor.我已经尝试过使用它,如果我给它一个已知的列名称(例如,< field column =“ref”xpath =“/ document / data / @ ref”>)但它无法找到任何文档或示例,以建议如何做我想要的,或无法完成.所以: >我可以使用XPathEntityProcessor执行此操作吗?如果是这样,怎么样? 解决方法
我没有设法在没有引入变换器的情况下找到这种方法,但是通过使用一个简单的ScriptTransformer,我就把它解决了.它是这样的:
... <script> function makePair(row) { var theKey = row.get("theKey"); var theValue = row.get("theValue"); row.put(theKey,theValue); row.remove("theKey"); row.remove("theValue"); return row; } </script> ... <entity name="..." processor="XPathEntityProcessor" transformer="script:makePair" forEach="/document" ...> <field column="theKey" xpath="/document/data/@ref" /> <field column="theValue" xpath="/document/data/value" /> </entity> ... 希望有人帮助! 请注意,如果您的dynamicField是多值的,则必须遍历theKey,因为row.get(“theKey”)将是一个列表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何使用没有Android Studio的模拟器在VS代码中安装颤振?
- c# – 如何在WPF ViewModel中使用模型验证规则
- xml笔记:自定义的mybatis的mapper的Xml Schemal
- 使用 Oracle Enterprise Manager Cloud Control 12c 安装和
- oracle新建管理员用户
- c# – DbSet.Add&DbSet.Remove使用EntityState.Added和
- RAC笔记
- Swift语言IOS8开发战记26 NSURLSession加载数据、上传下载
- c – 程序以g编译,但在gcc中以链接器错误退出
- c# – 没有秒和毫秒的TimeOfDay