проблема дельта-импорта в solr DIH

Когда я запускаю команду full_import, она работает нормально. Обновленные даты записываются в файл dataimport.properties. Когда я запускаю дельта-импорт, он дает ошибку индексации. Откатил все изменения. Файл 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>

person Brahmaji Rao    schedule 05.03.2011    source источник


Ответы (2)


Я заметил, что в вашем 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.

person Marko Bonaci    schedule 06.03.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 (conf).

person Marko Bonaci    schedule 05.03.2011