2013-10-12 3 views
0

Может ли кто-нибудь дать мне знать, как индексировать определенное поле в solr как внешний ключ? Я буду индексировать из базы данных MySQL.Индексирование Apache Solr со ссылками на RDBMS

Индексирование поля в качестве первичного ключа было выполнено путем указания этого поля как уникального ключа в Schema.xml, но я хочу индексировать поле как внешний ключ.

+0

Нет необходимости в заголовке all-caps. Он уже смелый и имеет больший размер шрифта. –

ответ

2

Solr Wiki говорит:

Для людей, которые привыкли к SQL, важно отметить, что присоединяется в Solr не действительно эквивалентно SQL не присоединяется, поскольку никакой информации о таблице соединяемых «от» переносится в итоговый результат . Более подходящей аналогией SQL будет «внутренний запрос».

Вы должны понимать, что Solr - это не РСУБД, а довольно плоская структура. Вы можете использовать Solr как текстовую поисковую систему. Прежде чем попасть в него, вы должны решить, чего именно вы хотите достичь. Here 's несколько вещей, чтобы различать Solr и СУБД:

Задание уникального ключа в Solr - это различие между документами. Вы не можете хранить ссылки на другие документы в Solr, как это делает любой другой SQL. Вам нужно написать обработчик импорта для импорта данных из MySQL, который преобразует/реструктурирует записи MySQL в сплющенную/денормализованную структуру, на которой вы можете индексировать любое поле. И даже если вы хотите хранить документы разных типов и хотите установить отношения между ними, вы можете использовать joinshere, как вы используете группировку и объединение), или вам придется написать внешнее приложение, которое выполняет сопоставление при запросе и что я не думаю, что это лучшая идея, так как это будет излишним для Solr при наличии огромного количества документов).

+0

Спасибо большое Амит :-) – user2852305

+0

Добро пожаловать @ user2852305. И если вы думаете, что получили свой ответ, вы можете принять вышеуказанный ответ! :) –

Смежные вопросы