1. 概述
Lucene是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎。Lucene以其方便使用、快速實施以及靈活性受到廣泛的關注。它可以方便地嵌入到各種應用中實現針對應用的全文索引、檢索功能,本總結使用lucene--2.3.2。
2. lucene 的包結構
1、org.apache.lucene.analysis對需要建立索引的文本進行分詞、過濾等操作, 語言分析器,主要用于的切詞Analyzer是一個抽象類,管理對文本內容的切分詞規則。
2、org.apache.lucene.analysis.standard是標準分析器
3、org.apache.lucene.document提供對Document和Field的各種操作的支持。索引存儲時的文檔結構管理,類似于關系型數據庫的表結構。Document相對于關系型數據庫的記錄對象,Field主要負責字段的管理。
4、org.apache.lucene.index是最重要的包,用于向Lucene提供建立索引時各種操作的支持。索引管理,包括索引建立、刪除等。索引包是整個系統核心,全文檢索的根本就是為每個切出來的詞建索引,查詢時就只需要遍歷索引,而不需要去正文中遍歷,從而極大的提高檢索效率。
5、org.apache.lucene.queryParser提供檢索時的分析支持。查詢分析器,實現查詢關鍵詞間的運算,如與、或、非等。
6、org.apache.lucene.search 負責檢索。檢索管理,根據查詢條件,檢索得到結果。
7、org.apache.lucene.store提供對索引存儲的支持。數據存儲管理,主要包括一些底層的I/0操作。
8、org.apache.lucene.util提供一些常用工具類和常量類的支持
3. 索引文件格式
a) .fnm格式 包含了Document中所有field名稱
b) .fdt與.fdx格式 .fdt文件用于存儲具有Store.YES屬性的Field的數據;.fdx是一個索引,用于存儲Document在.fdt中的位置。
c) .tis 與.tii格式 .tis文件用于存儲分詞后的詞條(Term),而.tii就是它的索引文件,它表明了每個.tis文件中的詞條的位置。
d) deletable格式 文檔被刪除后,會首先在deletable文件中留下一個記錄,要真正刪除時,才將索引除去。
e) 復合索引格式 .cfs
使用IndexWriter的useCompoundFile() 默認為True
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/xiaoping8411/archive/2010/03/23/5409940.aspx