Pokročilé Použitie indexu ako statickej vlastnosti Zend_Search_Lucene objekt využíva deštruktor na zapísanie zmien a uvoľnenie zdrojov. Pridaná dokumenty sa ukladajú v pamäti a zapísanie novej časti indexu na disk zavisí od parametra MaxBufferedDocs. Ak ešte nie je dosiahnutý limit určený parametrom MaxBufferedDocs potom existujú "neuložené" dokumenty ktoré sa uložia ako nový segment v deštruktore objektu. Automatická optimalizácia indexu sa spúšťa podľa potreby a jej spustenie je závislé na parametroch MaxBufferedDocs, MaxMergeDocs a MergeFactor. Statické vlastnosti objektu sú zničené po "poslednom riadku bežiaceho skriptu" Predsa len, deštruktor statických vlastností je správne zavolaný a má možnosť urobiť všetko čo je potrebné. Jedným z problémov sú výnimky. Výnimky ktoré sú vyvolané deštruktorom statického objektu nemajú kontext, lebo sú vykonané "za koncom skriptu" V týchto prípadoch dostanente chybu "Fatal error: Exception thrown without a stack frame in Unknown on line 0" namiesto výnimky. Zend_Search_Lucene poskytuje možnosť na ošetriť tento problému pomocou metódy commit(). Pri jej zavolaní sa uložia všetky zmeny a uvoľní pamäť ktorá bola použitá na uloženie nových segmentov. Túto operáciu je možné urobiť v ľubovoľnom čase alebo aj viackrát počas behu skriptu. Po tejto operácii je stále možné používať Zend_Search_Lucene na vyhľadávanie, pridávanie, alebo zmazanie dokumentov. Metóda commit() zaistí, že už neexistujú žiadne dokumenty na pridanie, alebo zmazanie a teda deštruktor Zend_Search_Lucene neurobí nič a preto ani nevznikne žiadna výnimka: commit(); } } Searcher::initIndex(); ... // Script shutdown routine ... Searcher::commit(); ... ]]>