Индекс поиска по каталогу не меняет статус "требуемый индекс"
Я много раз запускал процесс переиндексации, и система всегда возвращала статус "требуемый индекс". Я безуспешно сокращаю таблицу.
2 answers
Проверьте, какие события делают индексы недействительными
Документы Magento показывают события для каждого индекса (см. События, которые запускают переиндексацию):
Далее вы можете добавить некоторый отладочный код в Mage_Index_Model_Resource_Process::updateStatus()
if ($status === Mage_Index_Model_Process::STATUS_REQUIRE_REINDEX) {
Mage::log(sprintf('Indexer %s was invalidated.', $process->getIndexer()->getName()), null, 'invalid_index.log', true);
foreach (debug_backtrace() as $db) {
Mage::log(sprintf('%s::%s', $db['class'], $db['function']), null, 'invalid_index.log', true);
}
}
Это должно показать вам трассировку стека о том, что делает индексы недействительными. В моем случае это были запросы API 'catalogproductupdate'
Вы также можете проверить исключение.войдите в журнал, если вы обнаружите какие-либо блокировки таблицы "index_process". Этот таблицы содержат данные, которые вы видите в разделе Система > Управление индексами
Кредиты для кода отладки идут здесь
В случае ошибки при перестроении индекса. Перейдите в свой путь magento var/report
, очистите старые ошибки и повторите попытку.