1 indexreader開啟索引檔案,讀取並開啟指向索引檔案的流。
1.1.1、找到最新的segment_n檔案
1.1.2、通過segment_n檔案中儲存的各個段的資訊開啟各個段
1.1.3、得到的indexreader物件如下
2 將查詢語句轉換為查詢物件query物件樹
2.1、建立weight物件樹,計算term weight
2.2、重寫query物件樹
2.3、建立weight物件樹
2.4、計算term weight分數
2.5 建立scorer及sumscorer物件樹
3、進行倒排表合併
3.1、交集conjunctionscorer(+a +b)
3.2、並集disjunctionsumscorer(a or b)
3.4、reqoptsumscorer(+a b)
4、收集文件結果集合及計算打分
4.1、建立結果文件收集器
4.2、收集文件號
4.3、打分計算
4.4、返回打分最高的n篇文件
5、lucene如何在搜尋階段讀取索引資訊
5.1、讀取詞典資訊
5.2、讀取倒排表資訊
Lucene學習總結之七 Lucene搜尋過程解析
本系列文章將詳細描述幾乎最新版本的lucene的基本原理和 分析。其中總體架構和索引檔案格式是lucene 2.9的,索引過程分析是lucene 3.0的。鑑於索引檔案格式沒有太大變化,因而原文沒有更新,原理和架構的文章中引用了前輩的一些圖,可能屬於早期的lucene,但不影響對原理和架構的理解。本...
Lucene之建立索引
lucene用來建搜尋引擎要解決四個問題 抓取資料 解析資料 建立索引和執行搜尋。首先為每一篇文章新增標題 內容 寫作時間等資訊,從而寫好每一篇文章,然後將每一篇文章新增到書裡面去。這樣問及就寫好了。建立索引的過程如下 建立索引器indexwriter,這相當於一本書的框架。建立文件物件docmen...
lucene學習總結
一,建立索引 1,建立indexwriter directory fsdirectory。open file analyzer new standardanalyzer version indexwriter new indexwriter directory,analyzer,boolean,bo...