Что такое сегменты в Lucene?

Что такое сегменты в Lucene?

Каковы преимущества сегментов?

36
задан not a patch 3 February 2017 в 18:58
поделиться

2 ответа

Индекс Lucene разбит на более мелкие части, называемые сегментами . Каждый сегмент - это свой индекс. Lucene просматривает их все по порядку.

Новый сегмент создается, когда открывается новый писатель и когда писатель фиксирует или закрывается.

Преимущества использования этой системы заключаются в том, что вам никогда не придется изменять файлы сегмента после его создания. Когда вы добавляете новые документы в свой индекс, они добавляются в следующий сегмент. Предыдущие сегменты никогда не изменяются.

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

Однако в какой-то момент Lucene может решить объединить некоторые сегменты. Эту операцию также можно запустить с помощью optimize.

52
ответ дан 27 November 2019 в 05:38
поделиться

Сегмент - это очень просто раздел индекса . Идея состоит в том, что вы можете добавлять документы в индекс, который в настоящее время обслуживается, создавая новый сегмент только с новыми документами в нем. Таким образом, вам не придется часто выполнять дорогостоящие перестройки всего индекса, чтобы добавлять в него новые документы.

24
ответ дан 27 November 2019 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: