今天,我們來了解一下Lucene的域的元數(shù)據(jù)信息—>.fnm。 一個(gè)段包含多個(gè)域,每個(gè)域都存儲(chǔ)一下元數(shù)據(jù)。fnm文件的詳細(xì)數(shù)據(jù)格式大致如下:
如同上面對(duì)段的信息的介紹一般,我們來一個(gè)個(gè)地看一下域中各個(gè)不同存儲(chǔ)區(qū)域的具體含義和作用。
如果要詳細(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ǔ)的信息大概是:
看完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,分別代表詞向量索引文件,詞向量文檔文件、詞向量域文件。
以上都是索引的正向信息,下一篇我們將再去了解一下反向信息,敬請(qǐng)期待。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注