Индекс Lucene разделен на более мелкие порции, называемые сегментами. Каждый сегмент имеет свой собственный индекс. Lucene ищет их всех по порядку.
Новый сегмент создается при открытии нового устройства записи и при условии, что средство записи фиксируется или закрывается.
Преимущества использования этой системы в том, что вам никогда не придется изменять файлы сегмента после его создания. Когда вы добавляете новые документы в свой индекс, они добавляются в следующий сегмент. Предыдущие сегменты никогда не изменяются.
Удаление документа выполняется простым указанием в файле, какой документ сегмента удален, но физически документ всегда остается в сегменте. Документы в Lucene действительно не обновляются. Происходит следующее: предыдущая версия документа помечается как удаленная в исходном сегменте, а новая версия документа добавляется в текущий сегмент. Это сводит к минимуму вероятность повреждения индекса, поскольку приходится постоянно изменять его содержимое при наличии изменений. Это также позволяет легко создавать резервные копии и синхронизировать индекс на разных машинах.
Однако в какой-то момент Lucene может принять решение объединить некоторые сегменты. Эту операцию также можно запустить с помощью оптимизации.