Что такое сегменты в Lucene? - PullRequest
35 голосов
/ 24 апреля 2010

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

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

Ответы [ 3 ]

51 голосов
/ 24 апреля 2010

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

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

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

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

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

22 голосов
/ 24 апреля 2010

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

3 голосов
/ 14 января 2017

Преимущества в сегменте уже отвечали другие. Я включу диаграмму ASCII индекса Lucene.

Сегмент люцена

Сегмент Lucene является частью индекса. Каждый сегмент состоит из нескольких индексных файлов. Если вы заглянете внутрь любого из этих файлов, вы увидите, что он содержит 1 или более документов Lucene .

+- Index 5 ------------------------------------------+
|                                                    |
|  +- Segment _0 ---------------------------------+  |
|  |                                              |  |
|  |  +- file 1 -------------------------------+  |  |
|  |  |                                        |  |  |
|  |  | +- L.Doc1-+  +- L.Doc2-+  +- L.Doc3-+  |  |  |
|  |  | |         |  |         |  |         |  |  |  |
|  |  | | field 1 |  | field 1 |  | field 1 |  |  |  |
|  |  | | field 2 |  | field 2 |  | field 2 |  |  |  |
|  |  | | field 3 |  | field 3 |  | field 3 |  |  |  |
|  |  | |         |  |         |  |         |  |  |  |
|  |  | +---------+  +---------+  +---------+  |  |  |
|  |  |                                        |  |  |
|  |  +----------------------------------------+  |  |
|  |                                              |  |
|  |                                              |  |
|  |  +- file 2 -------------------------------+  |  |
|  |  |                                        |  |  |
|  |  | +- L.Doc4-+  +- L.Doc5-+  +- L.Doc6-+  |  |  |
|  |  | |         |  |         |  |         |  |  |  |
|  |  | | field 1 |  | field 1 |  | field 1 |  |  |  |
|  |  | | field 2 |  | field 2 |  | field 2 |  |  |  |
|  |  | | field 3 |  | field 3 |  | field 3 |  |  |  |
|  |  | |         |  |         |  |         |  |  |  |
|  |  | +---------+  +---------+  +---------+  |  |  |
|  |  |                                        |  |  |
|  |  +----------------------------------------+  |  |
|  |                                              |  |
|  +----------------------------------------------+  |
|                                                    |
|  +- Segment _1 (optional) ----------------------+  |
|  |                                              |  |
|  +----------------------------------------------+  |
+----------------------------------------------------+

1010 * Ссылки * Lucene in Action, второе издание - июль 2010 г. - публикация Мэннинга

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...