Лучший способ индексировать данные таблицы базы данных в Solr?

На данный момент у меня есть таблица с примерно 100 000 строками. Я хочу проиндексировать данные в этой таблице в индексе Solr.

Таким образом, наивный метод будет заключаться в следующем:

  • Получить все строки
  • Для каждой строки: преобразовать в SolrDocument и добавить каждый документ в запрос
  • После преобразования всех строк отправить запрос

Некоторые проблемы с этим подходом, которые я могу придумать, следующие:

  • Загрузка слишком большого количества данных (содержимого всей таблицы) в память
  • Публикация большого запроса

Однако некоторые преимущества:

  • Только один запрос к базе данных
  • Только один запрос POST к Solr

Подход не масштабируется, я вижу, что, поскольку по мере роста таблицы увеличиваются требования к памяти и размер запроса POST. Мне, возможно, нужно взять n количество строк, обработать их, а затем взять следующее n ?

Мне интересно, есть ли у кого-нибудь совет о том, как лучше всего реализовать это ?

(ps. Я искал на сайте, но не нашел вопросов, похожих на этот.)

Спасибо.

5
задан C0deAttack 6 February 2012 в 15:04
поделиться