Я пытаюсь загрузить большой объем данных (> 10 м записей) в 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 и дочерних объектов. Ценю вашу помощь. Благодаря!
Я добавил случай использования в качестве комментария к элементу JIRA. Я открою этот вопрос открытым и закрою его, когда будет введено разрешение. – Razen