Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Concat子节点xpathenticyprocessor Solr DIH_Xpath_Solr_Transformer_Dih - Fatal编程技术网

Concat子节点xpathenticyprocessor Solr DIH

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

我试图通过DIH使solr字段的值包含XML中父子关系的信息

以下是数据配置:

<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>