2011-12-30 15 views
18

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

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

ответ

30

Я был в в той же ситуации вы спрашиваете, почему это занимает то же самое время.

Решение: стереть «: solr». Просто напишите:

rake sunspot:reindex[batch_size,Model] 

Если вы не укажете batch_size вы имеете тот поставить запятую «» как:

rake sunspot:reindex[,model] 
+1

это работает и спасибо! Но ответчики-искатели помнят, что решение IRB ниже будет быстрее. – lulalala

+6

Мне пришлось процитировать скобки в zshell 'rake sunspot: reindex \ [, model \]'. – iltempo

26

я теперь перейти в консоль Rails и вызвать переиндексации оттуда:

Deal.solr_reindex(:batch_size => 1000, :include => :period) 

Это прекрасно работает, как я теперь могу индексировать только одна модель, включают в себя связанные таблицы для улучшения скорости. Раньше он только индексируется в 200/сек, а теперь он составляет 1000/сек.

(На самом деле, так как индексирование через консоль или грабли очистят индексный файл, в результате чего в течение короткого периода пустого индекса, теперь я называю solr_index большую частью времени для обновления индекса.)

+2

Рек задача для переиндексации несколько наивная. Узким местом здесь является N + 1 запросов к вашей базе данных для связанных объектов, а использование ': include' в консоли позволяет сэкономить много накладных расходов, которые иначе возникли в задаче rake. –

+2

небольшое дополнение к этому решению: прилагаемые модели должны быть записаны в нижнем регистре и в зависимости от их вида в единственном числе или множественном числе –

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

  • Нет связанных вопросов^_^