Lucene學習筆記之三:全文搜索詳解

全文搜索詳解主要是對其的組成部分和流程做一個詳細的說明,有助於我們接下來學習lucene。

 

Lucene學習筆記之一:信息檢索與全文檢索這篇文章中,我們已經說過,全文搜索是按索引來找,效率高(從字典的索引找,再找到哪一頁,效率會高),也就是要建立索引,然後進行搜索的過程。

Lucene學習筆記之二:lucene是什麼這篇文章中介紹了lucene是什麼,也就是爲了更好的進行建立索引和搜索。

 

在全文搜索工具中,都是由這樣的三部分組成:索引部分、分詞部分、搜索部分。爲什麼是由這三部分組成呢?我們來想一想,爲了要提交檢索的效率,得建立索引;從哪來的索引,必須對資源(文檔,文章)進行分詞;搜索更不用說了

 

全文檢索中建立索引與進行檢索的流程

建立索引,就是對待搜索的信息進行一定的分析,並將分析結果按照一定的組織方式存儲起來,通常將這些結果存儲在文件中。存儲分析結果的文件的集合就是索引。在查詢時,先從索引中查找,由於索引是按照一定的結構組織的,所以查詢的速度非常快。

爲提供檢索的功能,信息檢索系統會事先做一些準備工作:信息的採集與加工。

  1. 信息採集:把信息源的信息拷貝到本地,構成待檢索的信息集合。(信息源可以是互聯網中的網頁、硬盤中的txt、doc、pdf等格式的電子文檔,或是文件系統上的文件等等)。

  2. 信息加工:爲採集到本地的信息編排索引,爲查詢做好準備。

流程如下:


分詞器

分詞器,對文本資源進行切分,將文本按規則切分爲一個個可以進行索引的最小單位(關鍵詞)。

建立索引和進行搜索時都要用到分詞器。爲了保證能正確的搜索到結果,在建立索引與進行搜索時使用的分詞器應是同一個。


索引文件結構

索引庫是一組文件的集合。


索引文件的檢索:

索引表規模相對較小,文檔集合規模較大。進行檢索時,先從檢索索引表開始,然後找到相對應的文檔。如果查詢中僅包含一個關鍵詞,則在索引表中找到該單詞,並取出他對應的文檔就可以了。如果查詢中包含多個關鍵詞,則需要將各個關鍵字檢索出的記錄進行合併。

 

索引文件的維護:

維護索引用三個操作:插入、刪除和更新文檔。但是更新操作需要較高的代價,因爲文檔修改後(即使是很小的修改),就可以會造成文檔中的很多的關鍵詞的位置發生了變化,這是需要頻繁的讀取和修改記錄,這種代價是相當高的。因此,一般不進行更新操作,而是使用“先刪除,後創建”的方式代替更新操作。


今天說寫到這裏,下節見。

 

本文鏈接:Lucene學習筆記之三:全文搜索詳解,本文由huangyineng原創,轉載請註明出處

發佈了55 篇原創文章 · 獲贊 5 · 訪問量 8339
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章