1

SOLR フィールドの値に、DIH を介して XML の親子関係に関する情報を含めようとしています。

ここにdataConfigがあります:

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

サンプル XML:

<Group>
   <name>
      Vehicle
   </name>
   <SubGroup>
        <name>Car</name>
   </SubGroup>
   <SubGroup>
        <name>Bike</name>
   </SubGroup>
</Group>

<Group>
   <name>
      Fruit
   </name>
   <SubGroup>
        <name>Apple</name>
   </SubGroup>
   <SubGroup>
        <name>Banana</name>
   </SubGroup>
</Group>

どのように指定しますか:

 <field column="spec" xpath="/Group/name/SubGroup" transformer="script:doSomething"/> 

そのため、仕様の対応するインスタンスを次のようにすることができます。

Vehicle Car

Vehicle Bike

Fruit Apple

Fruit Banana

理想的には、次のような名前とサブネームの間の区切り文字を使用します。

Fruit::Banana
4

1 に答える 1

0

より良いアプローチを考え出しました。

入力 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 ドキュメントはオンラインで不足しており、これを達成するのに非常に苦労しました。

于 2013-11-01T00:37:53.070 に答える