国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Lucene初探之?dāng)?shù)據(jù)格式詳情(三)

2019-11-08 02:30:58
字體:
供稿:網(wǎng)友

Lucene初探之?dāng)?shù)據(jù)格式詳情(三)

今天,我們來了解一下Lucene的域的元數(shù)據(jù)信息—>.fnm。 一個(gè)段包含多個(gè)域,每個(gè)域都存儲(chǔ)一下元數(shù)據(jù)。fnm文件的詳細(xì)數(shù)據(jù)格式大致如下: 如同上面對(duì)段的信息的介紹一般,我們來一個(gè)個(gè)地看一下域中各個(gè)不同存儲(chǔ)區(qū)域的具體含義和作用。

FNMVersion:代表fnm文件版本號(hào);比如Lucene2.9版本對(duì)應(yīng)的FNMVerion值為-2;FieldsCount:如同字面意思一般,代表域的個(gè)數(shù);Filed X:代表具體的域存儲(chǔ)信息,其也可以再次細(xì)分為: FieldName:域名;8 bits:分別代表的含義如圖所示;

如果要詳細(xì)地深入了解域的元數(shù)據(jù)信息,則需要下面幾點(diǎn):

位置和偏移量的區(qū)別:位置是基于詞的,偏移量是基于字母或者漢字的;索引域與存儲(chǔ)域的區(qū)別:一個(gè)文檔中有的數(shù)據(jù)可能不需要被索引,但是當(dāng)用戶搜索到該文檔時(shí),這些數(shù)據(jù)希望一同返回,這樣可以節(jié)省系統(tǒng)再到具體的數(shù)據(jù)存儲(chǔ)區(qū)域去查找到必要的數(shù)據(jù)并填充進(jìn)來。也就是說這些數(shù)據(jù)是冗余數(shù)據(jù),沒有被索引的必要;payload的作用:它是存儲(chǔ)在倒排表中,和文檔號(hào)一同存儲(chǔ)的和具體每篇文檔所相關(guān)的一些關(guān)鍵信息,比如用戶自定義的文檔ID,而不是系統(tǒng)Lucene所默認(rèn)生成的ID;這樣當(dāng)系統(tǒng)在倒排表中查找到相應(yīng)的數(shù)據(jù)中之后就不必再為了這些數(shù)據(jù)而再次去存儲(chǔ)域中查找了,大大地提高了查詢效率;它的存儲(chǔ)方式大概如下:

了解了fnm文件之后,和域相關(guān)的文件還有fdx、fdt兩種,下面就讓我們來深入了解一下這兩種文件的詳細(xì)情況。 由這幅圖我們可以清晰地看到,fdx文件其實(shí)是fdt文件的一個(gè)索引文件,也就是域索引文件,而fdt文件才是真正的存儲(chǔ)域數(shù)據(jù)的文件。 我們來由下往上看,fdt文件一共有segment.size項(xiàng),也就是一個(gè)一個(gè)段所包含的文檔數(shù)量。每一篇文檔都在fdt文件中有一個(gè)對(duì)應(yīng)的映射區(qū)域;對(duì)于每一篇文檔,其存儲(chǔ)的信息大概是:

文檔所包含域的個(gè)數(shù)fieldCount和每個(gè)域的詳細(xì)信息fieldData;對(duì)于每一個(gè)fieldData文件,又分為fieldNum,一個(gè)8bit的擴(kuò)展信息和真正的存儲(chǔ)的域的值;其中8bit的最后一位代表此域是否被分詞,倒數(shù)第二位代表當(dāng)前數(shù)據(jù)是按照字符串存儲(chǔ)的還是按照二進(jìn)制存儲(chǔ)的,倒數(shù)第三位代表此域是否經(jīng)過壓縮;

看完fdt文件,我們?cè)賮砜匆幌耭dx文件,其是由一個(gè)個(gè)的fieldValuePosition組成,其代表的是對(duì)應(yīng)的域在fdt文件中相對(duì)起始位置的偏移量(節(jié)約存儲(chǔ)空間)。

我們看完域的數(shù)據(jù)存儲(chǔ)格式和相關(guān)信息之后,還剩下的就是最低層的存儲(chǔ)數(shù)據(jù)單元了–詞向量的數(shù)據(jù)信息。

我們?cè)诖讼葟恼w上來看一下詞的存儲(chǔ)情況: 相信看過上面對(duì)域的數(shù)據(jù)存儲(chǔ)分析之后,大家在看到這幅圖時(shí)一定一眼就明白詞向量的大概存儲(chǔ)情況了吧,很明顯,三個(gè)文件—->tvx、tvd、tvf,分別代表詞向量索引文件,詞向量文檔文件、詞向量域文件。

tvx:一個(gè)段包含N篇文檔,對(duì)應(yīng)這里的N個(gè)DocFieldPosition,每一個(gè)DocFieldPosition又包含DocumentPosition和FieldPosition,其中DocumentPosition對(duì)應(yīng)的是tvd文件中的位置偏移量,F(xiàn)ieldPosition代表tvf文件中的對(duì)應(yīng)位置偏移量;當(dāng)然,tvx中還有一個(gè)TVXVersion,也就是當(dāng)前txv文件的版本號(hào);tvd:一樣,本文件除了TVDVerion之外,包含N個(gè)FieldInfomation,如上圖所示;tvf:類似tvd文件,但是在這里,對(duì)于每一個(gè)TermFreqs,其分別由TermText(詞文本)、TermFreq(詞頻),Positions(詞位置),offSet(詞的偏移量信息)構(gòu)成;

以上都是索引的正向信息,下一篇我們將再去了解一下反向信息,敬請(qǐng)期待。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴业县| 沾益县| 宽城| 朝阳区| 土默特左旗| 旅游| 新源县| 额尔古纳市| 马公市| 房产| 和顺县| 鄂伦春自治旗| 汉阴县| 谢通门县| 嵩明县| 巴东县| 萝北县| 全椒县| 新安县| 郎溪县| 长葛市| 千阳县| 霍邱县| 丹阳市| 四子王旗| 清徐县| 浦江县| 沧源| 蛟河市| 抚松县| 同江市| 江门市| 手游| 赣州市| 永仁县| 稷山县| 平果县| 江源县| 赤壁市| 澄城县| 辽宁省|