Ръководство - Документация - Zend Framework
Създаване на нов индекс
Възможностите за създаване и актуализиране на индекси са внедрени в Zend_Search_Lucene и Java Lucene. Можете да използвате и двете възможности.
Списъкът с PHP кодове по-долу дава пример за това как да индексирате файл, използвайки Zend_Search_Lucene API за индексиране.
Новодобавените документи могат да бъдат незабавно извлечени от индекса.
Актуализация на индекса
Същата процедура се използва при актуализиране на съществуващ индекс. Единствената разлика е, че методът open () се извиква вместо метода create ():
Актуализиране на документи
Индексният файлов формат Lucene не поддържа актуализиране на документи. За да актуализирате документа, трябва да бъде изтрит и добавен отново.
Методът Zend_Search_Lucene: delete () работи върху вътрешния идентификатор на индекс на документ. Може да се получи от резултата от заявката ("hit") чрез свойството 'id':
Получаване на размера на индекс
Zend_Search_Lucene има два начина да получи размера на индекса.
Zend_Search_Lucene: maxDoc () връща номер едно, по-голям от възможно най-големия номер на документ. Всъщност това е общият брой документи в индекса, включително изтритите. Този метод има синоним - Zend_Search_Lucene: count () .
Zend_Search_Lucene: numDocs () връща общия брой неизтрити документи.
Методът Zend_Search_Lucene: isDeleted ($ id) може да се използва за проверка дали документът е изтрит.
При оптимизиране на индекс индексът се изчиства от изтрити документи и обхватът на използваните идентификатори се компресира. Следователно вътрешният идентификатор на документ може да се промени
Оптимизиране на индекса
Индексът на луцен се състои от сегменти. Всеки сегмент е независима част от данните.
Файловете с индекс на Lucene по своя характер не могат да бъдат актуализирани. Актуализирането на сегмент изисква пълна реорганизация. Вижте форматите на индексните файлове ("http://lucene.apache.org/java/docs/fileformats.html) за подробности. Новите документи се добавят към индекса чрез създаване на нови сегменти.
Увеличаването на броя на парченцата влошава качеството на индекса, но оптимизирането на индекса го възстановява. Оптимизацията се свежда до комбиниране на няколко сегмента в един. Тази процедура също не актуализира сегменти. Създава нов голям сегмент, който съдържа нов оптимизиран сегмент вместо набор от стари сегменти и актуализира списъка със сегменти (файл „сегменти“).