Подтвердить что ты не робот

Переиндексирование определенной модели в Sunspot, кажется, не имеет никакого значения во времени

Мое приложение обычно занимает 20 минут для переиндексации в целом. Существует небольшая таблица с несколькими записями, которые я хочу снова переиндексировать. Я хочу сэкономить время, поэтому я выполнил команду rake sunspot:solr:reindex[500,Deal]. Это берется прямо из Github readme и предполагается переиндексировать только одну модель.

Время, необходимое для переиндексации в этой команде, составляет 20 минут, поэтому нет разницы во времени. Я что-то делаю неправильно?

4b9b3361

Ответ 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 большую часть времени, чтобы обновить индекс.)