php zend Lucene pagination
http://framework.zend.com/manual/1.11/en/learning.lucene.pagination.html
なんとなくコメントが面白いので。
検索結果のidだけキャッシュしておいて
次ページのときは、idからデータを取得しろというだけですが
この結果のインスタンスのサイズが半端ないので、全部キャッシュするのは無理です。
とりあえず、速度だけ計ってみました。
getDocument 100回
0.10254192352295 sec
0.093567132949829
0.091049194335938
search + 100データ取得 + 1000idをcache
0.86610412597656 sec
0.6905689239502
0.69413304328918
ということで、検索は、キーワードやデータ量でかなり変わりますが、getdocument100回のほうが速いことは分かりました。
ページングとキャッシュを実装しました。
基本的には、ページング以外にキャッシュが利用されることは稀なので、memcachedのメモリは少なめに設定です。