Lucene的细分市场是什么?

Meh*_*ahi 36 lucene segment

Lucene的细分市场是什么?

细分市场有哪些好处?

Pas*_*imo 52

Lucene索引被拆分为称为段的较小块.每个细分都是自己的索引.Lucene按顺序搜索所有这些.

打开新编写器以及编写器提交或关闭时,将创建新段.

使用此系统的优点是,一旦创建了段,您就不必修改它们的文件.在索引中添加新文档时,它们将添加到下一个段中.以前的段永远不会被修改.

通过简单地在文件中指示删除段的哪个文档来完成删除文档,但在物理上,文档始终保留在段中.Lucene中的文档并未真正更新.发生的情况是,文档的先前版本在其原始段中被标记为已删除,并且文档的新版本被添加到当前段.这通过在有变化时不断修改其内容来最小化破坏索引的可能性.它还允许在不同的机器上轻松备份和同步索引.

但是,在某些时候,Lucene可能决定合并一些细分市场.也可以通过优化来触发此操作.

  • 这意味着每个段文件中都有术语词典?如果两个片段都有单词“搜索,我”,那么会有两个字典吗?它会使每个段变得如此大以存储重复的术语? (2认同)

sbl*_*lom 24

段只是索引的一部分.我们的想法是,您可以通过创建一个仅包含新文档的新段,将文档添加到当前正在服务的索引中.这样,您就不必经常重建整个索引以便将新文档添加到索引中.


not*_*tch 7

其他人已经回答了细分市场的好处。我将包括一个 Lucene 索引的 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) ----------------------+  |
|  |                                              |  |
|  +----------------------------------------------+  |
+----------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

参考

Lucene in Action 第二版 - 2010 年 7 月 - Manning Publication

  • 该段不保存文档本身,它只是倒排索引的一部分,其中包含对文档本身的**引用**(例如 id)。 (2认同)