拆解Clucene系列(3)——Clucene的代碼組織結構

CLucene的代碼組織還是比較清晰的,本文以CLucene1.0爲例,主要分爲以下幾個部分:

這裏寫圖片描述

analysis

模塊主要負責詞法分析及語言處理,從而生成Term。也包括各種分析器

config

各種編譯配置選項,以及一些與OS平臺相關的內容。

debug

各種斷言異常處理宏定義,錯誤常量。還自帶一個內存泄漏跟蹤工具和內存池

document

一個document對象就是用戶提供的一篇文檔,可以包括多個Field

index

模塊主要負責索引的創建,如何讀取索引,重要的類裏IndexWriter,DocumentWriter,IndexReader,SegmentMerger,SegmentReader.
IndexWriter和DocumentWriter:負責創建索引
SegmentReader和IndexReader:負責讀取索引
Segmentmerger:負責索引的合併

queryparser

Lucene自帶的查詢引擎。負責解析用戶的輸入,可以通過掃描用戶輸入的字符串,生成各種Query對象。Clucene中支持模糊查詢,語義查詢,短語查詢,組合查詢等等,如有TermQuery,BooleanQuery,RangeQuery,WildcardQuery等。

模塊主要負責對索引的搜索,打分,和排序。

Store

主要負責對索引的存儲。FSDirectory和RAMDistory是兩個重要的類,一個實現了對磁盤的跨平臺讀寫,另一個是把內存當成磁盤。

util

一些常用的工具類。主要有:
BitVector:位數組
PriorityQueue:優先級隊列,好多地方都用到此結構。
VoidList和VoidMap:分別繼承自STL的list 和map。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章