Почему Entity иногда нужен параметр URL, а иногда нет?

Я пытаюсь настроить DataImportHandler, и при попытке выполнить полный импорт я получаю эту ошибку:

СЕРЬЕЗНЫЙ: полный импорт не выполнен: java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: SolrEntityProcessor: требуется параметр 'url' Обрабатывающий документ № 1

Я вижу в примере data-config.xml, который поставляется с solr, иногда у Entity есть параметр url, а иногда нет. Если это необходимо, почему в некоторых примерах его нет?

Какой URL он ищет?

Документация на самом деле не показывает «url» в качестве обязательного параметра для SqlEntityProcessor.

Для SqlEntityProcessor атрибутами объекта являются:
query (обязательно) : строка sql, с помощью которой выполняется запрос к базе данных
deltaQuery : используется только в дельта-импорте
parentDeltaQuery : используется только в дельта-импорте
deletePkQuery : используется только в дельта-импорте
deltaImportQuery : (используется только в дельта-импорте) . Если этого нет, DIH пытается построить запрос на импорт, (после определения дельты) изменяя «запрос» (это подвержено ошибкам). Существует пространство имен ${dataimporter.delta.}, которое можно использовать в этом запросе. например: выберите * из таблицы, где id=${dataimporter.delta.id} Solr1.4.


person Michael    schedule 02.05.2012    source источник


Ответы (1)


Это зависит от конкретной EntityProcessor реализации, которую вы используете. Каждый EntityProcessor имеет свои собственные атрибуты сущности. SQLEntityProcessor не нуждается в параметре URL, поскольку для получения информации он использует элемент dataSource. необходимо для подключения к базе данных, в то время как, например, SolrEntityProcessor не нуждается в элементе dataSource, но использует атрибут url для получения URL-адреса экземпляра Solr, из которого импортируются данные. Существуют также различные реализации DataSource. Если вы посмотрите на JdbcDataSource, вы увидите, что для этого требуется сам параметр URL.

person javanna    schedule 03.05.2012
comment
Я хотел использовать SqlEntityProcessor, но, думаю, я стал косоглазым и вместо этого набрал SolrEntityProcessor, поэтому он сказал мне, что мне нужен параметр URL. Поменял на SqlEntityProcessor и теперь все хорошо. - person Michael; 04.05.2012