Zend Search Luceneはファイルシステム上でインデックス付けされており、上記のユーザーが述べたように、スケールに合わせて構築されています。何十万ものドキュメントのインデックスを作成している場合を除いて、キャッシュは実際には必要ありません。特に、あるファイルからデータを取得して別のファイルに保存するだけで効果的に実行できるためです。
一方、たとえば商品IDのみを検索インデックスに保存し、結果が得られたときにデータベースから商品を選択する場合は、キャッシュする価値があります。これは、 Zend_Cacheを使用して簡単に実現できます。
ZendDbキャッシングの基本的な例は次のとおりです。
$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(好きなように呼び出す)メソッドでブートストラップファイルに追加する必要があります。
もちろん、これは非常に単純な実装であり、完全な結果キャッシングを実現するわけではありません。ZendDbを使用したZendキャッシングの詳細については、こちらを参照してください。