溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Lucene全文檢索的原理是什么

發(fā)布時間:2021-12-23 09:20:05 來源:億速云 閱讀:114 作者:iii 欄目:云計算

這篇文章主要講解了“Lucene全文檢索的原理是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Lucene全文檢索的原理是什么”吧!

在我們處理的數(shù)據(jù)當中,分為三類數(shù)據(jù):

結(jié)構(gòu)化數(shù)據(jù):具有固定格式或限定長度的數(shù)據(jù),如我們的數(shù)據(jù)庫中的數(shù)據(jù)

非結(jié)構(gòu)化數(shù)據(jù):無固定格式、無固定長度的數(shù)據(jù),如我們web上的文本內(nèi)容等

半結(jié)構(gòu)數(shù)據(jù):如Json、XML數(shù)據(jù)。

那么我們怎么來處理這些不同類型的數(shù)據(jù)呢?

對于數(shù)據(jù)庫中的結(jié)構(gòu)化數(shù)據(jù),使用SQL語句查詢

對于非結(jié)構(gòu)數(shù)據(jù),我們順序掃描、全文檢索.

其中,順序掃描就是從數(shù)據(jù)的開頭的一條數(shù)據(jù)掃描到最后的一條數(shù)據(jù)。顯而易見的是,這對于時間、性能都是很大的浪費。

那什么是全文檢索呢?

這就是Lucene要完成的事情了。下面我們先看一張圖來描述它在整個系統(tǒng)中所起到的作用:

Lucene全文檢索的原理是什么

對lucen上層的應(yīng)用部分,我們可以看到應(yīng)用手機了結(jié)構(gòu)化的、半結(jié)構(gòu)化的、非結(jié)構(gòu)化的數(shù)據(jù),由lucene為其建立索引文件;另一種應(yīng)用則是檢索,用戶通過輸入檢索條件的關(guān)鍵詞檢索我們的索引庫,然后把結(jié)果返回給用戶。

那么什么是索引?

就像新華字典中的拼音檢索和部首索引用來查字一樣。

在lucene中也是一樣,全文檢索指的是某一個詞在哪些文檔中出現(xiàn)過。例如:

Lucene全文檢索的原理是什么

在上圖中,“l(fā)ucene”這個關(guān)鍵詞在第1篇和第3篇文檔中出現(xiàn)過?!癝olr”這個關(guān)鍵詞在第1、3、5篇文檔中出現(xiàn)過。“hadoop”這個關(guān)鍵詞在第3、5、7、8、9篇文檔中出現(xiàn)過。

這里我們把整個過程稱之為“反向索引”。右邊的每個關(guān)鍵詞的文檔鏈表我們稱之為倒排表。

什么是反向索引?

反向索引:這種由字符串到文件的映射是文件到字符串映射的反向過程。其實描述的就是一種映射關(guān)系。

創(chuàng)建索引

好吧。那么創(chuàng)建全文檢索的步驟是怎么樣的呢?

這里我們將創(chuàng)建全文檢索分為三個步驟或者說需要的三個東西:

需要檢索的數(shù)據(jù)(Document)

分詞技術(shù)(Analyzer)

索引創(chuàng)建(Indexer)

我們舉個例子吧。

第一步,Document數(shù)據(jù)實例

我的博客空間

HappyBKs的Lucene文章

HappBKs的Hadoop文章

第二步,分詞技術(shù)。(我們這里采用標準分詞。)

我|的|博|客|空|間

happybks|的|lucene|文|章

happbks|的|hadoop|文|章

注意,這里經(jīng)過標準分詞之后,中文按字進行了切分,英文的大寫字符被轉(zhuǎn)換為了小寫。

第三步,索引創(chuàng)建。

Term
IDTermIDTermID
1happybks2happbks3
123
1lucene2hadoop3
123
123
1





















我們對索引進行合并。

TermIDTermIDTermID
1happybks2,3

1,2,3



1lucene2hadoop3
12,3

12,3

1





















這張表就是我們所說的索引。

現(xiàn)在,我們來看看,如何利用索引來進行檢索。

索引檢索

分為四個步驟:

搜索關(guān)鍵詞(keywords)

分詞技術(shù)(Analyzer)

檢索索引(Search)

返回結(jié)果

我們還是放到例子里來梳理步驟。

第一步,獲得用戶搜索的關(guān)鍵詞

lucene文章

第二步,采用分詞技術(shù)

lucene|文|章

第三步,檢索索引。

Lucene全文檢索的原理是什么

通過上面的圖我們可以看到,倒排表中,包含關(guān)鍵詞所有分詞單元的文檔是文檔2.

感謝各位的閱讀,以上就是“Lucene全文檢索的原理是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Lucene全文檢索的原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI