1、什麼是全文檢索,如何實現全文檢索
2、lucene實現全文檢索的流程
a) 建立索引
b) 查詢索引
3、配置開發環境
4、入門程式
5、分析器的分析過程
a) 測試分析器的分詞效果
b) 第三方中文分析器
6、索引庫維護
a) 新增文件
b) 刪除文件
c) 修改文件
7、索引庫查詢
a) 使用query子類查詢
b) 使用queryparser查詢
我們生活中的資料總體分為兩種:結構化資料和非結構化資料。結構化資料:指具有固定格式或有限長度的資料,如資料庫,元資料等。
非結構化資料:指不定長或無固定格式的資料,如郵件,word文件等磁碟上的檔案
常見的結構化資料也就是資料庫中的資料。在資料庫中搜尋很容易實現,通常都是使用sql語句進行查詢,而且能很快的得到查詢結果。順序掃瞄法(serial scanning)為什麼資料庫搜尋很容易?
因為資料庫中的資料儲存是有規律的,有行有列而且資料格式、資料長度都是固定的。
所謂順序掃瞄,比如要找內容包含某乙個字串的檔案,就是乙個文件乙個文件的看,對於每乙個文件,從頭看到尾,如果此文件包含此字串,則此文件為我們要找的檔案,接著看下乙個檔案,直到掃瞄完所有的檔案。如利用全文檢索(full-text search)windows
的搜尋也可以搜尋檔案內容,只是相當的慢。
將非結構化資料中的一部分資訊提取出來,重新組織,使其變得有一定結構,然後對此有一定結構的資料進行搜尋,從而達到搜尋相對較快的目的。這部分從非結構化資料中提取出的然後重新組織的資訊,我們稱之索引。例如:字典。字典的拼音表和部首檢字表就相當於字典的索引,對每乙個字的解釋是非結構化的,如果字典沒有音節表和部首檢字表,在茫茫辭海中找乙個字只能順序掃瞄。然而字的某些資訊可以提取出來進行結構化處理,比如讀音,就比較結構化,分聲母和韻母,分別只有幾種可以一一枚舉,於是將讀音拿出來按一定的順序排列,每一項讀音都指向此字的詳細解釋的頁數。我們搜尋時按結構化的拼音搜到讀音,然後按其指向的頁數,便可找到我們的非結構化資料
——也即對字的解釋。
這種先建立索引,再對索引進行搜尋的過程就叫全文檢索(full-text search)。
雖然建立索引的過程也是非常耗時的,但是索引一旦建立就可以多次使用,全文檢索主要處理的是查詢,所以耗時間建立索引是值得的。
可以使用lucene實現全文檢索。lucene是apache下的乙個開放源**的全文檢索引擎工具包。提供了完整的查詢引擎和索引引擎,部分文字分析引擎。lucene的目的是為軟體開發人員提供乙個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能。1、綠色表示索引過程,對要搜尋的原始內容進行索引構建乙個索引庫,索引過程包括:確定原始內容即要搜尋的內容à採集文件à建立文件à分析文件à索引文件2、紅色表示搜尋過程,從索引庫中搜尋內容,搜尋過程包括:使用者通過搜尋介面à建立查詢à執行搜尋,從索引庫搜尋à渲染搜尋結果
對文件索引的過程,將使用者要搜尋的文件內容進行索引,索引儲存在索引庫(index)中。原始文件是指要索引和搜尋的內容。原始內容包括網際網路上的網頁、資料庫中的資料、磁碟上的檔案等。本案例中的原始內容就是磁碟上的檔案,如下圖:全文檢索技術原理
lucene是solr實現的基礎,而lucene的實現基礎是全文檢索技術 接下就談談基礎的全文檢索技術實現的原理。檢索是指對資料的,所以檢索技術是針對於某一種或特有的型別的資料。而針對於不同的資料型別對應有不同的檢索方式。結構化資料 具有固定格式或有限長度的資料,資料庫 元資料 非結構化資料 長度不...
全文檢索技術調研
全文檢索的技術有很多,由於軟體使用資料庫種類的不確定性,所以拋棄了在資料庫上做全文檢索的念頭。那麼,接下來就需要找乙個能替代db進行全文檢索的框架了。這兩個是基於lucene開發的企業級搜尋應用伺服器,兩者都有各自的有點,這裡不再贅述,因為本人需要搜尋功能的是乙個單機應用,沒有百萬級的資料,感覺有點...
Lucene 全文檢索技術介紹
前言 本文只介紹了全文檢索的基礎概念,後面陸續會介紹 lucece 的使用。我們生活種的資料總體分為兩種 結構化資料和非結構化資料 常見的結構化資料也就是資料庫中的資料。在資料庫中搜尋很容易實現,通常都是使用sql語句進行查詢,而且能很快的得到查詢結果。為什麼資料庫搜尋很容易?因為資料庫中的資料儲存...