- 自己動手寫分布式搜索引擎
- 羅剛
- 416字
- 2020-11-28 15:52:52
3.5.1 整體結構
在Lucene中,org.apache.lucene.index.TermInfosReader類的getIndexOffset()方法實現了一個類似的折半查找。對于特別大的順序集合可以通過采用插值法提高查找速度。
Lucene的整體結構如圖3-14所示。

圖3-14 Lucene原理圖
可以使用SVN客戶端從https://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/下載正在開發中的Lucene源代碼。
Lucene源碼分為核心包和外圍功能包:核心包實現搜索功能;外圍功能包實現高亮顯示等輔助功能。Lucene源碼的核心包中共包括7個子包,每個子包完成特定的功能。
最基本的是索引管理包 (org.apache.lucene.index) 和檢索管理包(org.apache.lucene.search)。索引管理包實現索引的建立、刪除等。檢索管理包根據查詢條件,檢索得到結果。
索引管理包調用數據存儲管理包(org.apache.lucene.store),主要包括一些底層的I/O操作。同時也會調用一些公用的算法類 (org.apache.lucene.util)。編碼管理包(org.apache.lucene.codecs)用于方便自定義索引的編碼和結構。文檔結構包(org.apache.lucene.document)用于描述索引存儲時的文檔結構管理,類似于關系型數據庫的表結構。
查詢分析器包(org.apache.lucene.queryParser)實現查詢語法,支持關鍵詞間的運算,如與、或、非等。語言分析器(org.apache.lucene.analysis)主要用于對放入索引的文檔和查詢詞切詞,支持中文主要是擴展此類。
下面先介紹索引是如何生成的,然后介紹查詢原理。
- Flash CC中文版動畫設計與制作/微課堂學電腦
- Word論文排版之道
- 四時風月繪:國風水墨CG插畫繪畫技法
- 3ds Max/VRay室內設計材質、燈光與建模速查超級手冊
- AI繪畫:Stable Diffusion從入門到精通
- Photoshop CS6實戰基礎培訓教程(全視頻微課版)
- Drupal 6 Panels Cookbook
- Photoshop CS6標準教程(全視頻微課版)
- 中文版3ds Max/VRay效果圖制作完全自學教程(實例培訓教材版)
- Photoshop CC入門與提高
- Unity 3D游戲開發(第2版)
- 科技繪圖/科研論文圖/論文配圖設計與創作自學手冊:科研動畫篇
- Premiere Pro CC 2015中文版基礎與實例教程(第4版)
- ChatGPT+AI文案寫作實戰108招
- Microsoft SQL Server 2008 High Availability