Zend Search Lucene индексируется в файловой системе и, как указано выше, создан для масштабирования. Если вы не индексируете сотни тысяч документов, кэширование на самом деле не является необходимым, особенно если учесть, что все, что вы эффективно делаете, - это извлечение данных из одного файла и сохранение его в другом.
С другой стороны, если вы сохраняете, скажем, идентификатор продукта в своем поисковом индексе, а затем выбираете продукты из базы данных, когда получаете результат, это стоит кэшировать. Этого легко достичь, используя Zend_Cache .
Базовый пример кэширования Zend Db приведен здесь:
$frontendOptions = array(
'automatic_serialization' => true
);
$backendOptions = array(
'cache_dir' => YOUR_CACHE_PATH_ON_THE_FILE_SYSTEM,
'file_name_prefix' => 'my_cache_prefix',
);
$cache = Zend_Cache::factory('Core',
'File',
$frontendOptions,
$backendOptions
);
Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
Это должно быть добавлено в ваш файл начальной загрузки в метод _initDbCache (вызывайте его как хотите).
Конечно, это очень простая реализация и не достигается полное кэширование результатов, более подробную информацию о Zend Caching с Zend Db можно найти здесь .