Lucene 中的细分是什么?
细分市场有哪些好处?
答案 0 :(得分:51)
Lucene索引被拆分为更小的块,称为段。每个细分都是自己的索引。 Lucene按顺序搜索所有这些。
打开新编写器以及编写器提交或关闭时,会创建一个新段。
使用此系统的优点是,一旦创建了段,您就不必修改它们的文件。在索引中添加新文档时,它们将添加到下一个段中。以前的段永远不会被修改。
通过简单地在文件中指示删除段的哪个文档来完成删除文档,但在物理上,文档始终保留在段中。 Lucene中的文档并未真正更新。发生的情况是,文档的先前版本在其原始段中被标记为已删除,并且文档的新版本被添加到当前段。这通过在有变化时不断修改其内容来最小化破坏索引的可能性。它还允许在不同的机器上轻松备份和同步索引。
然而,在某些时候,Lucene可能决定合并一些细分市场。也可以通过优化来触发此操作。
答案 1 :(得分:22)
细分非常简单a section of the index。我们的想法是,您可以通过创建一个仅包含新文档的新段,将文档添加到当前正在服务的索引中。这样,您就不必经常重建整个索引,以便将新文档添加到索引中。
答案 2 :(得分:3)
其他人已经回答了细分受益。我将包括一个Lucene索引的ascii图。
Lucene细分是指数的一部分。每个段包含多个索引文件。如果您查看这些文件中的任何一个,您会看到它包含1个或更多Lucene documents。
+- 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) ----------------------+ |
| | | |
| +----------------------------------------------+ |
+----------------------------------------------------+
Lucene in Action Second Edition - July 2010 - Manning Publication