проблема дельта-импорта в Solr DIH - PullRequest
1 голос
/ 05 марта 2011

Когда я запускаю команду full_import, она работает нормально. Обновленные даты записываются в файл dataimport.properties. Когда я запускаю delta-import, это приводит к сбою индексации. Откатил все изменения. Файл dataimport.properties уже создан и имеет разрешения 777 в solr / conf / location.

Пожалуйста, помогите мне решить эту проблему.


@ mbonaci

запрос, deltaImportQuery и deltaQuery в data-config.xml выглядит следующим образом

    <entity name="item" query="select group_title,description,DATE_FORMAT(created_date, '%Y-%m-%dT%H:%i:%sZ') as createdDate,group_status, 'GROUP' as itemtype,group_id as id from collaboration_groups where group_status=1" 
deltaImportQuery="select group_title,description,DATE_FORMAT(created_date, '%Y-%m-%dT%H:%i:%sZ') as createdDate,group_status,group_id as id,'GROUP' as itemtype  from collaboration_groups where group_status=1 and group_id=${dataimporter.delta.id} "  
deltaQuery="select group_id from collaboration_groups where group_status=1 and  updated_date &gt; '${dataimporter.last_index_time}'" deletedPkQuery="select group_id  from  collaboration_groups  where group_status = 0 and updated_date &gt; '${dataimporter.last_index_time}'">
            <field column="id"  name="id" />
            <field column="itemtype" name="itemtype" />
            <field column="group_title" name="fullName" />
            <field column="description" name="description"/>
            <field column="createdDate" name="createdDate"/>
</entity>

параметр конфигурации обработчика запроса dataImport в config.xml выглядит следующим образом

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">/var/solr/data-config.xml</str>
</lst>
</requestHandler>

Ответы [ 2 ]

9 голосов
/ 06 марта 2011

Я заметил, что в вашем deltaImportQuery вы указали id (которого нет в вашем deltaQuery) вместо group_id.В этой строке:

...and group_id=${dataimporter.delta.id}"

Поскольку ваш PK в deltaQuery имеет значение group_id, эта часть запроса должна выглядеть следующим образом:

...and group_id=${dataimporter.delta.group_id}"

У меня была та же проблема, потому что я не сделалпонять, что ${dataimporter.delta} на самом деле представляет собой deltaQuery.

0 голосов
/ 05 марта 2011

Можете ли вы взглянуть на файл dataConfig и опубликовать ваши query, deltaImportQuery и deltaQuery?
dataConfig, расположенные либо непосредственно в вашем solrconfig.xml, внутри тега обработчика запроса dataImport, либов отдельном XML-файле.Чтобы выяснить, какой файл проверить параметр конфигурации обработчика запроса dataImport, который должен выглядеть примерно так:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">mssql-jdbc.xml</str>
    </lst>
</requestHandler>

Файл, содержащий dataConfig, находится в том же каталоге, что и solrconfig.xml (конф).

...