Concat子节点xpathenticyprocessor Solr DIH
我试图通过DIH使solr字段的值包含XML中父子关系的信息 以下是数据配置:Concat子节点xpathenticyprocessor Solr DIH,xpath,solr,transformer,dih,Xpath,Solr,Transformer,Dih,我试图通过DIH使solr字段的值包含XML中父子关系的信息 以下是数据配置: <dataConfig> <script> <![CDATA[ function doSomething(row){ //logic return row; } ]]> </script> <dataSource type="URLDa
<dataConfig>
<script>
<![CDATA[
function doSomething(row){
//logic
return row;
}
]]>
</script>
<dataSource type="URLDataSource"/>
<document>
<entity name="getModels"
pk="id"
url="pathpathpath"
processor="XPathEntityProcessor"
forEach="/path"
transformer="script:doSomething"
>
<field column="spec" xpath="/Group/name/SubGroup" transformer="script:doSomething"/>
<field column = ... />
</entity>
</document>
及
及
及
理想情况下,在名称和子名称之间使用分隔符,如:
Fruit::Banana
找到了更好的方法 我们可以在输入xml上使用XSL翻译来预先进行任何必要的格式化 在这种情况下,xsl将xml转换为solr索引就绪,例如:
<add>
<doc>
<field name="id">MyID</field>
.....
</doc>
...
</add>
下面是data-config.xml
<dataConfig>
<dataSource type="URLDataSource"/>
<document>
<entity name="getModels"
pk="id"
stream="true"
url="pathpathpath"
processor="XPathEntityProcessor"
xsl="path"
forEach="/doc"
useSolrAddSchema="true"
>
<field column="id" xpath="/add/doc/field[@name='id']"/>
...
</entity>
</document>
</dataConfig>
这是一种变通办法,而不是直接的解决办法。但我希望这对其他人有帮助。网上的自定义DIH文档很少,在实现这一点上遇到了很多困难 如果已在两个字段中存储水果和香蕉,则可以使用TemplateTransformer从这些字段值为spec列创建新字段值:
Vehicle Bike
Fruit Apple
Fruit Banana
Fruit::Banana
<add>
<doc>
<field name="id">MyID</field>
.....
</doc>
...
</add>
<dataConfig>
<dataSource type="URLDataSource"/>
<document>
<entity name="getModels"
pk="id"
stream="true"
url="pathpathpath"
processor="XPathEntityProcessor"
xsl="path"
forEach="/doc"
useSolrAddSchema="true"
>
<field column="id" xpath="/add/doc/field[@name='id']"/>
...
</entity>
</document>
</dataConfig>