全文搜索詳解主要是對其的組成部分和流程做一個詳細的說明,有助於我們接下來學習lucene。
在Lucene學習筆記之一:信息檢索與全文檢索這篇文章中,我們已經說過,全文搜索是按索引來找,效率高(從字典的索引找,再找到哪一頁,效率會高),也就是要建立索引,然後進行搜索的過程。 在Lucene學習筆記之二:lucene是什麼這篇文章中介紹了lucene是什麼,也就是爲了更好的進行建立索引和搜索。
在全文搜索工具中,都是由這樣的三部分組成:索引部分、分詞部分、搜索部分。爲什麼是由這三部分組成呢?我們來想一想,爲了要提交檢索的效率,得建立索引;從哪來的索引,必須對資源(文檔,文章)進行分詞;搜索更不用說了
全文檢索中建立索引與進行檢索的流程 建立索引,就是對待搜索的信息進行一定的分析,並將分析結果按照一定的組織方式存儲起來,通常將這些結果存儲在文件中。存儲分析結果的文件的集合就是索引。在查詢時,先從索引中查找,由於索引是按照一定的結構組織的,所以查詢的速度非常快。 爲提供檢索的功能,信息檢索系統會事先做一些準備工作:信息的採集與加工。
流程如下: 分詞器 分詞器,對文本資源進行切分,將文本按規則切分爲一個個可以進行索引的最小單位(關鍵詞)。 建立索引和進行搜索時都要用到分詞器。爲了保證能正確的搜索到結果,在建立索引與進行搜索時使用的分詞器應是同一個。 索引文件結構 索引庫是一組文件的集合。
索引文件的檢索: 索引表規模相對較小,文檔集合規模較大。進行檢索時,先從檢索索引表開始,然後找到相對應的文檔。如果查詢中僅包含一個關鍵詞,則在索引表中找到該單詞,並取出他對應的文檔就可以了。如果查詢中包含多個關鍵詞,則需要將各個關鍵字檢索出的記錄進行合併。
索引文件的維護: 維護索引用三個操作:插入、刪除和更新文檔。但是更新操作需要較高的代價,因爲文檔修改後(即使是很小的修改),就可以會造成文檔中的很多的關鍵詞的位置發生了變化,這是需要頻繁的讀取和修改記錄,這種代價是相當高的。因此,一般不進行更新操作,而是使用“先刪除,後創建”的方式代替更新操作。
本文鏈接:Lucene學習筆記之三:全文搜索詳解,本文由huangyineng原創,轉載請註明出處 |