SolR 5: как я могу индексировать несколько баз данных в одном ядре

В настоящее время я пытаюсь проиндексировать несколько баз данных (две MySQL и одну PostgreSQL) в один индекс, чтобы провести исследование на веб-сайте. Мне удалось импортировать каждую базу Mysql отдельно на разные ядра (и разные индексы).

Изменить: проблема в том, что у меня есть идентификатор для каждой таблицы, и они вступают в конфликт друг с другом. Как я могу сказать, что каждая база данных имеет другой идентификатор для Solr?

Код:

    <entity name="database1" dataSource="ds-database1" query="SELECT id, my_column FROM table_database1">
        <field column="id" name="id" />
        <field column="my_column" name="ts_my_column" />
    </entity>


    <entity name="database2" dataSource="ds-database2" query="
            SELECT id, column_example
            FROM table_database2" >
        <field column="id" name="id" />
        <field column="column_example" name="ts_columnsexample" />
    </entity>

person Ismail H    schedule 04.02.2016    source источник
comment
Простое определение всех источников данных в одной конфигурации должно работать, IIRC. По умолчанию Solr импортирует все сущности.   -  person MatsLindh    schedule 04.02.2016
comment
Я настроил два источника данных и два объекта, которые работают нормально, каждый из которых взят отдельно, но когда обе конфигурации (базы данных mysql на данный момент) помещаются в один и тот же xml, индексируется только одна база данных   -  person Ismail H    schedule 04.02.2016
comment
Я думаю, что проблема обведена. Я обновлю вопрос.   -  person Ismail H    schedule 04.02.2016


Ответы (1)


Вы можете использовать TemplateTransformer, чтобы добавить контент перед значением при использовании DIH, или вы можете сделать это в своем SQL:

SELECT CONCAT('db_1_', id) AS id ...

.. или вы можете сделать это с помощью ScriptTransformer, если вам нужно еще больше логики для преобразования.

person MatsLindh    schedule 04.02.2016
comment
СОХРАНИЛ МОЙ ДЕНЬ! Спасибо большое - person Ismail H; 04.02.2016