2016-11-11 11 views
0

我試圖將大量的數據(> 10m記錄)加載到SOLR中。更新處理器鏈不影響通過dataimporthandler中的子實體加載的文檔

我想根據某些列值拆分查詢,並避免在多個實體中使用不同的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

相關問題