sphinx数据文件简析
?
Sphinx使用的文件包括 “sph”, “spa”, “spi”, “spd”, “spp”, “spm” ,還有鎖文件(.spl)。其中sph是系統(tǒng)的配置文件。其它則為索引文件。
l Spi 文件:保存WordId及指向此WordId對(duì)應(yīng)的文檔信息在spd文件的指針。Spi文件在檢索程序啟動(dòng)時(shí)完全加載入內(nèi)存。Spi文件是分塊的,塊內(nèi)排序,塊之間也排序。分塊的目的應(yīng)該是為了快速檢索到WordId,因?yàn)镾pi中的WordId是變長(zhǎng)壓縮的,索引需要先在塊級(jí)別做二分定位,再在快內(nèi)解壓縮查找。
文件結(jié)構(gòu),每塊中結(jié)構(gòu),wordId實(shí)際存儲(chǔ)的是差值
| WordId | SpdFilePointer | DocNum | HitNum |
2 Spd文件:
文件結(jié)構(gòu)
| DocID | [DocInfo] | HitFilePointer | FieldNum | HitNum |
3 Spp文件
文件結(jié)構(gòu)
| HitPos |
4 Spa文件:存儲(chǔ)DocInfo的文件,檢索程序啟動(dòng)時(shí)會(huì)把此文件加載如內(nèi)存,sphinx可以指定DocInfo的存儲(chǔ)方式,
① 存儲(chǔ)到spd文件中(InLine)
②. 另外單獨(dú)存儲(chǔ)。指定此,就會(huì)生成spa文件
文件結(jié)構(gòu):
| DocId | DocInfo |
5 Spm文件:在DocInfo中,有一種特殊的屬性,叫MVA,多值屬性。Sphinx對(duì)此屬性特殊處理,需要存儲(chǔ)在spm文件中。檢索程序啟動(dòng)時(shí)會(huì)把此文件加載如內(nèi)存。此(MVA)屬性在DocInfo對(duì)應(yīng)位置存儲(chǔ)其在此文件中的字節(jié)偏移量。
文件結(jié)構(gòu):
| DocId | Anum,A1,A2,…,An | Bnum,B1,B2,…,Bn | … |
?
?
由于在第一趟掃描過(guò)程中會(huì)出現(xiàn)WordID相同的不同Hits(不同文檔或者不同位置不同字段),二趟前會(huì)根據(jù)WordID排序,WordID相同的Hits會(huì)連續(xù)出現(xiàn)并合并(合并到第一次出現(xiàn)的相同WordID中)
轉(zhuǎn)載于:https://www.cnblogs.com/Jerry-blog/p/5044602.html
總結(jié)
以上是生活随笔為你收集整理的sphinx数据文件简析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: windows环境下nginx的入门配置
- 下一篇: 部署和调优 1.3 pureftp部署