全文檢索技術_Lucene介紹

    在真正介紹Lucene之前,需要簡單瞭解一下全文檢索技術。Lucene和全文檢索技術的關係——前者是後者的工具,也就是說Lucene是實現全文檢索的工具之一。除了Lucene之外,還會很多其它實現全文檢索的技術。

搜索背景

    目前很多大型的網站,都離不開搜索。比如京東、天貓、淘寶等各大電商網站,美團、58同城等生活服務類平臺,百度、google等搜索引擎更不用說。
     搜索數據的特點主要有幾大方面:數據量龐大、要求速度快、要求搜索準確。而其中大數據的特點有4個V:Volume(大量)、Variety(多樣)、Velocity(高速)、Value(價值)。
     隨着互聯網的發展,人們對搜索的質量、速度的要求在不斷提升,直接推動了搜索技術的改良和升級。

傳統搜索技術的瓶頸

文件系統檢索

    將文檔、其它文本文件內容加載到內存進行關鍵字匹配,在數據量特別大時,顯得力不從心。

數據庫檢索

    對數據庫的性能要求較高,雖然能夠保證對大量數據的檢索,但是檢索速度無法保證。

全文檢索技術

定義

百度百科對全文檢索的定義:

    全文數據庫是全文檢索系統的主要構成部分。所謂全文數據庫是將一個完整的信息源的全部內容轉化爲計算機可以識別、處理的信息單元而形成的數據集合。全文數據庫不僅存儲了信息,而且還有對全文數據進行詞、字、段落等更深層次的編輯、加工的功能,而且所有全文數據庫無一不是海量信息數據庫。

我們從這個定義可以看出,全文檢索是圍繞全文數據庫展開的。

檢索系統架構

以百度搜索爲例。
一個完整的檢索系統,包含三大部分:
(1)數據採集:將分散的數據進行收集,比如網頁、日誌、各類文檔。
(2)數據整理:將無序散亂的數據進行整理計算,變爲結構化的數據,並將整理的結構化數據通過分詞技術、索引算法建立索引數據庫。
(3)檢索系統:提供搜索服務,通過一系列其它web技術,對全文數據庫的數據進行數據查詢返回,供用戶使用。

整體流程類似於下方的簡化模型:
在這裏插入圖片描述
爬蟲在互聯網上抓取數據到文件系統,然後對文件系統中的數據進行整理,創建出索引,最後爲上層Web應用提供數據來源。

Lucene介紹

什麼是Lucene

    Lucene目前非常流行。Lucene之所以好用,是因爲它是一個工具包的概念。最初是由Doug Cutting開發的,在SourceForge的網站上提供下載。在2001年9月作爲高質量的開源Java產品加入到Apache軟件基金會的Jakarta家族中。隨着每個版本的發佈,這個項目得到明顯的增強,也吸引了更多的用戶和開發人員。
    Lucene是全文檢索技術的一個工具包,爲全文索引技術的開發提供支持。換句話講,Lucene是全文搜索技術,但是全文檢索技術就不一定是Lucene。

Lucene的特點

(1)原生Java語言開發,所以天然具備跨平臺的能力,對Java的整合也比較友好。
(2)全文檢索數據庫中,索引數據結構的佔比不大於數據信息的20%。
(3)提供了豐富的檢索功能:

  • 詞項查詢
  • 多域查詢
  • 布爾查詢
  • 範圍查詢
    等等。

目前就介紹這麼多,後面會在全文檢索這個系列更新更多其它內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章