Переиндексирование определенной модели в Sunspot, кажется, не имеет никакого значения во времени
Мое приложение обычно занимает 20 минут для переиндексации в целом. Существует небольшая таблица с несколькими записями, которые я хочу снова переиндексировать. Я хочу сэкономить время, поэтому я выполнил команду rake sunspot:solr:reindex[500,Deal]
. Это берется прямо из Github readme и предполагается переиндексировать только одну модель.
Время, необходимое для переиндексации в этой команде, составляет 20 минут, поэтому нет разницы во времени. Я что-то делаю неправильно?
Ответы
Ответ 1
Я был в той же ситуации, когда вы спрашивали, почему это происходит в то же время.
Решение: стереть ": solr". Просто напишите:
rake sunspot:reindex[batch_size,Model]
Если вы не укажете batch_size, вы добавите запятую ",", например:
rake sunspot:reindex[,model]
Ответ 2
Теперь я перехожу в консоль Rails и переадресация звонков оттуда:
Deal.solr_reindex(:batch_size => 1000, :include => :period)
Это отлично работает, поскольку теперь я могу переиндексировать только одну модель, включая связанные таблицы для повышения скорости. Раньше он только индексируется в 200/сек, а теперь он составляет 1000/сек.
(На самом деле, поскольку переиндексация через консоль или рейк очищает индексный файл, что приводит к короткому периоду с пустым индексом, я теперь вызываю solr_index
большую часть времени, чтобы обновить индекс.)