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