Solr индексирует несколько таблиц из MySQL

У меня есть следующие таблицы mysql

 1. user(user_id,email) 
 2. tweets(tweet_id,user_id,tweet) 
 3. tags(tag_id,tag)
 4. tweets_tags(tweet_id,tag_id)

Я хочу показать твиты текущего пользователя на вкладке «Мои твиты» в приложении. Я хочу получить следующие данные от Solr

user_id
email
tweet where user_id=x
tags where tweet_id=xx

Как проиндексировать эту таблицу mysql в Solr? Я только что бы знать код schema.xml и data-config.xml для Full/Delta import.

Примечание. Я не спрашиваю о соединителе MySQL и т. Д., Я уже сделал это.


person Wasim A.    schedule 01.12.2013    source источник


Ответы (2)


Описанный вами вариант использования, похоже, не оправдывает использование solr. Вы просто убедитесь, что у вас есть правильные ключи и индексы, и сделайте это напрямую в mysql.

Если по какой-то причине вы ДОЛЖНЫ использовать solr, вы, вероятно, могли бы подготовить все данные и передать их solr в структуре тега/твита/пользователя, подобной этой.

  • пользователь1 - твит1 - тег1
  • пользователь1 - твит1 - тег2
  • пользователь1 - твит2 - тег1

и так далее.

Затем из solr вы запрашиваете по пользователю, а затем сортируете и группируете по твиту, а затем помечаете. Однако я должен еще раз заявить, что решение, которое я только что описал, реализовано намного безопаснее с большей уверенностью в результате с использованием простого sql.

Если вы предоставите более подробную информацию о желаемом результате, я буду рад предложить структуру базы данных вместе с необходимыми внешними ключами и индексами, а также запросы, необходимые для получения ваших данных.

person radoo    schedule 23.01.2014
comment
Согласен с этим ответом. У меня было аналогичное требование для SOLR POC, и я сделал так: я денормализовал данные и отправил этот запрос в DataImportHandler. - person ZeExplorer; 06.11.2017

Если вы используете DIH (dataimporterhandler), я думаю, что эта ссылка должна быть решением для вас: entity Если у вас возникли проблемы с написанием точных конфигураций, сообщите мне, я могу вам помочь.

person vuky    schedule 02.12.2013
comment
я уже прочитал эту страницу, мне нужно знать, что некоторые запросы настолько сложны, что нам нужно обрабатывать их с помощью php-массива, запускать один запрос, получать результат, а затем запускать другой запрос, используя данные из результата. как индексировать такие данные, используя несколько сущностей или несколько ядер. - person Wasim A.; 02.12.2013
comment
Я предлагаю подсущности. Предполагая, что вы захотите показать результаты из всех ваших таблиц (запросы на соединение ядра solr медленные, очень медленные). Для ускорения импорта вы можете создавать материализованные представления, а также использовать подобъекты во время импорта: stackoverflow.com/questions/13369226/ - person vuky; 02.12.2013