拜讀劉超覺先的Lucene學(xué)習(xí)筆記Lucene學(xué)習(xí)總結(jié)之三:Lucene的索引文件格式(1)德玫、Lucene的索引文件格式(2)劫窒、Lucene的索引文件格式(3),受益良多提岔,但是由于文章年代久遠(yuǎn)仙蛉,Lucene以迭代的面目全非,這里依照原作者的思路和框架碱蒙,對現(xiàn)在的最新版Lucene進(jìn)行一些淺顯的學(xué)習(xí)荠瘪,并記錄于此。
Lucene的索引里面存了些什么赛惩,如何存放的哀墓,也即Lucene的索引文件格式,是讀懂Lucene源代碼的一把鑰匙喷兼。
原作者的文章目錄:
---索引---
一篮绰、基本概念
1.1 索引(Index)
1.2 段(Segment)
1.3 文檔(Document)
1.4 域(field)
1.5 詞(term)
1.6 正向信息
1.7 反向信息
1.8 名稱和擴(kuò)展名總結(jié)
二、基本概念
2.1 Byte
2.2 UInt32
2.3 UInt64
2.4 VInt
2.5 Chars
2.6 String
三褒搔、基本規(guī)則
3.1 前綴后綴規(guī)則(Prefix+Suffix)
3.2 差值規(guī)則(Delta)
3.3 或然跟隨規(guī)則(A, B?)
3.4 跳躍表規(guī)則(Skip list)
四阶牍、具體格式
4.1 正向信息
4.1.1 段的元數(shù)據(jù)信息(segments_N)
4.1.2 域(Field)的元數(shù)據(jù)信息(.fnm)
4.1.3 域(Field)的數(shù)據(jù)信息(.fdt喷面,.fdx)
4.1.4 詞向量(Term Vector)的數(shù)據(jù)信息(.tvx,.tvd走孽,.tvf)
4.2 反向信息
4.2.1 詞典(.tis)及詞典索引(.tii)信息
4.2.2 文檔號及詞頻(.frq)信息
4.2.3 詞位置(.prx)信息
4.3 其他信息
4.3.1 標(biāo)準(zhǔn)化因子文件(.nrm)
4.3.2 刪除文檔文件(.del)
五惧辈、總體結(jié)構(gòu)
當(dāng)我們真正進(jìn)入到Lucene源碼之中的時(shí)候,我們會發(fā)現(xiàn):
Lucene的索引過程磕瓷,就是按照全文檢索的基本過程盒齿,將倒排表寫成此文件格式的過程。
Lucene的搜索過程困食,就是按照此文件格式將索引進(jìn)去的信息讀出來边翁,然后計(jì)算每篇文檔打分(score)的過程。
首先打開Apache Lucene 7.3.0的文檔頁面:
http://lucene.apache.org/core/7_3_0/index.html
參考文檔列表中有以下文檔供我們查閱:
File | Description |
---|---|
Changes | List of changes in this release. |
System Requirements | Minimum and supported Java versions. |
Migration Guide | What changed in Lucene 7; how to migrate code from Lucene 6.x. |
JRE Version Migration | Information about upgrading between major JRE versions. |
File Formats | Guide to the supported index format used by Lucene. This can be customized by using an alternate codec. |
Search and Scoring in Lucene | Introduction to how Lucene scores documents. |
Classic Scoring Formula | Formula of Lucene's classic Vector Spaceimplementation. |
Classic QueryParser Syntax | Overview of the Classic QueryParser's syntax and features. |