2016-11-11 7 views
0

大量のデータ(> 10mレコード)をSOLRにロードしようとしています。更新プロセッサーチェーンがデータインポートハンドラーの子エンティティーからロードされた文書に影響しない

特定の列の値に基づいてクエリを分割し、異なるwhere句で複数のエンティティでクエリを繰り返さないようにしたいとしました。だから私は入れ子にされた実体を持つDIHの能力を使うことに決めました。

子エンティティに設定されたフィールドがUpdateProcessorChainで定義されたプロセッサフ​​ァクトリの影響を受けないという事実を除いて、すべてが正常に動作します。親エンティティのフィールドのみが更新されます。 マイデータの設定ファイルがあり、

<entity name="nationalSearchResults" onError="skip" 
query="select distinct zip, state, city 
     from table.location 
     where transformer="RegexTransformer"> 
     <field column="ZIP" name="id"/> 
     <field column="STATE" name="state"/> 
     <field column="CITY" name="city"/> 
    <entity child="true" name="nationalSearchResultsByState" onError="skip" 
    query="SELECT b.zip, c.lctn_id, c.restaurants, c.pubs, c.coffeeshops, c.cinemas 
     from table.location b 
     join table.business c on c.zip = b.zip" 
     transformer="script:searchResultsTransformer, RegexTransformer"> 
     <field column="LCTN_ID" name="id"/> 
     <field column="RESTAURANTS" name="restaurants"/> 
     <field column="PUBS" name="pubs"/> 
     <field column="COFFEESHOPS" name="coffeeshops"/> 
     <field column="CINEMAS" name="cinemas"/> 
     <field column="ZIP" name="zip"/> 
    </entity> 
</entity> 

マイSolrの設定ファイルがあり、

<updateRequestProcessorChain name="updateOnCommit"> 
<processor class="DistributedUpdateProcessorFactory"/> 

<processor class="TrimFieldUpdateProcessorFactory" /> 
<processor class="RemoveBlankFieldUpdateProcessorFactory" /> 

<!-- To remove duplicate values in a multivalued field--> 
<processor class="UniqFieldsUpdateProcessorFactory"> 
     <str name="fieldRegex">restaurant*</str> 
     <str name="fieldRegex">pub*</str> 
     <str name="fieldRegex">cinema*</str> 
</processor> 
<processor class="solr.LogUpdateProcessorFactory" /> 
<processor class="solr.RunUpdateProcessorFactory" /> <!-- Necessary. Unless explicitly executing update commands in an alternative custom !UpdateRequestProcessorFactory --> 

<requestHandler name="/dataimport" class="DataImportHandler"> 
<lst name="defaults"> 
    <str name="config">data-config.xml</str> 
    <str name="update.chain">updateOnCommit</str> 
</lst> 

私は何かが足りないのですか?私はupdateProcessorChainと子エンティティに固有の何かを見つけることができません。あなたの助けに感謝。ありがとう!

答えて

1

SolrのURPチェーンは現在、ネストされたドキュメントの子エンティティには影響しません。 SOLR-9477を参照してください。

あなたがそれを必要とする理由の例として、また修正されたときに通知を受ける例として、そのJIRAにユースケースを自由に追加してください。

+0

JIRAの項目にユースケースをコメントとして追加しました。この質問を開いたままにして、解決策が導入されたら閉じます。 – Razen

関連する問題