Я намагаюся налаштувати 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 атрибутами сутності є:
запит (обов'язковий): рядок sql, за допомогою якої можна здійснити запит на db
deltaQuery: застосовується лише для дельта-імпорту
parentDeltaQuery: застосовується лише для дельта-імпорту
deletePkQuery: використовується лише в дельта-імпорті
deltaImportQuery: (Використовується лише для дельта-імпорту). Якщо цього немає, DIH намагається побудувати запит імпорту шляхом (після ідентифікації дельти), модифікуючи "запит" (це схильність до помилок). Існує простір імен $ {dataimporter.delta.}, Який може бути використаний у цьому запиті. Наприклад: виберіть * з tbl, де id = $ {dataimporter.delta.id} Solr1.4.
Відповіді:
1 для відповіді № 1Це залежить від конкретного EntityProcessor
реалізація, яку ви використовуєте. Кожен EntityProcessor
має власні атрибути сутності. SQLEntityProcessor
не потрібен параметр URL, оскільки він покладається на dataSource
елемент для отримання інформації, необхідної для підключення до бази даних, в той час як, наприклад, SolrEntityProcessor
не потрібно dataSource
елемент, але спирається на url
атрибут для отримання URL-адреси екземпляра Solr, з якого імпортуються дані. Є різні DataSource
реалізацій також, якщо ви дивитесь JdbcDataSource
ви побачите, що для цього потрібен сам параметр URL.