Дельта-импорт собирает данные, но не обновляет индекс solr.

У меня есть индекс solr, который я делаю DIH с базой данных mysql.

Когда я запускаю команду delta-import, собираются 4 вставленные строки в БД с момента последнего полного импорта, но индекс не обновляется!

841705 [qtp108251962-14] INFO  org.apache.solr.handler.dataimport.DataImporter  – Loading DIH Configuration: db-data-config.xml
841708 [qtp108251962-14] INFO  org.apache.solr.handler.dataimport.DataImporter  – Data Configuration loaded successfully
841709 [Thread-31] INFO  org.apache.solr.handler.dataimport.DataImporter  – Starting Delta Import
841709 [qtp108251962-14] INFO  org.apache.solr.core.SolrCore  – [db] webapp=/solr path=/dataimport params={command=delta-import} status=0 QTime=4 
841716 [Thread-31] INFO  org.apache.solr.handler.dataimport.SimplePropertiesWriter  – Read dataimport.properties
841719 [Thread-31] INFO  org.apache.solr.handler.dataimport.DocBuilder  – Starting delta collection.
841719 [Thread-31] INFO  org.apache.solr.handler.dataimport.DocBuilder  – Running ModifiedRowKey() for Entity: employees
841720 [Thread-31] INFO  org.apache.solr.handler.dataimport.JdbcDataSource  – Creating a connection for entity employees with URL: jdbc:mysql://localhost/sampledb
841735 [Thread-31] INFO  org.apache.solr.handler.dataimport.JdbcDataSource  – Time taken for getConnection(): 15
841736 [Thread-31] INFO  org.apache.solr.handler.dataimport.DocBuilder  – Completed ModifiedRowKey for Entity: employees rows obtained : 4
841736 [Thread-31] INFO  org.apache.solr.handler.dataimport.DocBuilder  – Completed DeletedRowKey for Entity: employees rows obtained : 0
841736 [Thread-31] INFO  org.apache.solr.handler.dataimport.DocBuilder  – Completed parentDeltaQuery for Entity: employees
841743 [Thread-31] INFO  org.apache.solr.handler.dataimport.DocBuilder  – Delta Import completed successfully
841743 [Thread-31] INFO  org.apache.solr.handler.dataimport.DocBuilder  – Time taken = 0:0:0.26
841744 [Thread-31] INFO  org.apache.solr.update.processor.LogUpdateProcessor  – [db] webapp=/solr path=/dataimport params={command=delta-import} status=0 QTime=4 {} 0 4

Вот файл db-data-config.xml:

<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/sampledb" user="root" password="system" />
    <document>
        <entity name="employees" pk="ID" 
                query="SELECT * FROM employees"
                deltaImportQuery="SELECT * FROM employees WHERE ID='${dataimporter.delta.id}'"
                deltaQuery="SELECT ID from employees WHERE TRANSTIME &gt; '${dataimporter.last_index_time}'">

            <field column="ID" name="id" />
            <field column="NAME" name="name" />
            <field column="CITY" name="city" />
            <field column="SERVICE_ID" name="service_id" />

       </entity>
    </document>
</dataConfig>

Но все равно индекс не обновляется... Как решить эту проблему?

Вот файлы конфигурации ядра:
https://github.com/MuhammadHewedy/db_cores/tree/master/db/conf https://github.com/MuhammadHewedy/db_cores/blob/master/db/conf/db-data-config.xml https://github.com/MuhammadHewedy/db_cores/blob/master/db/conf/schema.xml https://github.com/MuhammadHewedy/db_cores/blob/master/db/conf/solrconfig.xml
Спасибо.


person Muhammad Hewedy    schedule 23.11.2013    source источник


Ответы (1)


Попробуй это:

перейдите в свой /blob/master/db/conf/dataimport.properties Добавьте следующее:

#  URL params [mandatory]
#  remainder of URL
params=/select?qt=/dataimport&command=delta-import&clean=false&commit=true

Ознакомьтесь с http://wiki.apache.org/solr/DataImportHandler этой документацией.

Важно то, что commit=true. Проверьте, видите ли вы новые данные, если вы выполняете ручную фиксацию, запустив

http://localhost:8080/solr/update?commit=true
person Arun    schedule 25.11.2013
comment
Из приведенной выше ссылки: delta-import : For incremental imports and change detection run the command http://<host>:<port>/solr/dataimport?command=delta-import . It supports the same clean, commit, optimize and debug parameters as full-import command. И в разделе полного импорта: commit : (default 'true'). Итак, я думал, что commit=true используется по умолчанию и в случае дельта-импорта. - person Muhammad Hewedy; 25.11.2013
comment
Извините, из вашего комментария выше мне не ясно, есть ли у вас еще вопросы. Дайте мне знать, если мой ответ сработал для вас. - person Arun; 26.11.2013
comment
Я имею в виду, что у меня это не сработало, я только что попробовал, delta-import указав явно commit=true в URL-адресе (с тем же результатом, что и выше). Затем введите update?commit=true и по-прежнему не можете получить новые строки из базы данных в Solr. - person Muhammad Hewedy; 26.11.2013
comment
Не работает и у меня. Вы нашли какое-нибудь новое решение для этого? - person Shashank; 11.11.2016