全文檢索技術

2021-09-27 09:39:06 字數 2185 閱讀 8114

1、什麼是全文檢索,如何實現全文檢索

2、lucene實現全文檢索的流程

a) 建立索引

b) 查詢索引

3、配置開發環境

4、入門程式

5、分析器的分析過程

a) 測試分析器的分詞效果

b) 第三方中文分析器

6、索引庫維護

a) 新增文件

b) 刪除文件

c) 修改文件

7、索引庫查詢

a) 使用query子類查詢

b) 使用queryparser查詢

我們生活中的資料總體分為兩種:結構化資料和非結構化資料。

結構化資料:指具有固定格式或有限長度的資料,如資料庫,元資料等。

非結構化資料:指不定長或無固定格式的資料,如郵件,word文件等磁碟上的檔案

常見的結構化資料也就是資料庫中的資料。在資料庫中搜尋很容易實現,通常都是使用sql語句進行查詢,而且能很快的得到查詢結果。

為什麼資料庫搜尋很容易?

因為資料庫中的資料儲存是有規律的,有行有列而且資料格式、資料長度都是固定的。

順序掃瞄法(serial scanning)

所謂順序掃瞄,比如要找內容包含某乙個字串的檔案,就是乙個文件乙個文件的看,對於每乙個文件,從頭看到尾,如果此文件包含此字串,則此文件為我們要找的檔案,接著看下乙個檔案,直到掃瞄完所有的檔案。如利用

windows

的搜尋也可以搜尋檔案內容,只是相當的慢。

全文檢索(full-text search)

將非結構化資料中的一部分資訊提取出來,重新組織,使其變得有一定結構,然後對此有一定結構的資料進行搜尋,從而達到搜尋相對較快的目的。這部分從非結構化資料中提取出的然後重新組織的資訊,我們稱之索引

例如:字典。字典的拼音表和部首檢字表就相當於字典的索引,對每乙個字的解釋是非結構化的,如果字典沒有音節表和部首檢字表,在茫茫辭海中找乙個字只能順序掃瞄。然而字的某些資訊可以提取出來進行結構化處理,比如讀音,就比較結構化,分聲母和韻母,分別只有幾種可以一一枚舉,於是將讀音拿出來按一定的順序排列,每一項讀音都指向此字的詳細解釋的頁數。我們搜尋時按結構化的拼音搜到讀音,然後按其指向的頁數,便可找到我們的非結構化資料

——也即對字的解釋。

這種先建立索引,再對索引進行搜尋的過程就叫全文檢索(full-text search)

雖然建立索引的過程也是非常耗時的,但是索引一旦建立就可以多次使用,全文檢索主要處理的是查詢,所以耗時間建立索引是值得的。

可以使用lucene實現全文檢索。lucene是apache下的乙個開放源**的全文檢索引擎工具包。提供了完整的查詢引擎和索引引擎,部分文字分析引擎。lucene的目的是為軟體開發人員提供乙個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能。

1、綠色表示索引過程,對要搜尋的原始內容進行索引構建乙個索引庫,索引過程包括:確定原始內容即要搜尋的內容à採集文件à建立文件à分析文件à索引文件

2、紅色表示搜尋過程,從索引庫中搜尋內容,搜尋過程包括:使用者通過搜尋介面à建立查詢à執行搜尋,從索引庫搜尋à渲染搜尋結果

對文件索引的過程,將使用者要搜尋的文件內容進行索引,索引儲存在索引庫(index)中。

原始文件是指要索引和搜尋的內容。原始內容包括網際網路上的網頁、資料庫中的資料、磁碟上的檔案等。

本案例中的原始內容就是磁碟上的檔案,如下圖:

全文檢索技術原理

lucene是solr實現的基礎,而lucene的實現基礎是全文檢索技術 接下就談談基礎的全文檢索技術實現的原理。檢索是指對資料的,所以檢索技術是針對於某一種或特有的型別的資料。而針對於不同的資料型別對應有不同的檢索方式。結構化資料 具有固定格式或有限長度的資料,資料庫 元資料 非結構化資料 長度不...

全文檢索技術調研

全文檢索的技術有很多,由於軟體使用資料庫種類的不確定性,所以拋棄了在資料庫上做全文檢索的念頭。那麼,接下來就需要找乙個能替代db進行全文檢索的框架了。這兩個是基於lucene開發的企業級搜尋應用伺服器,兩者都有各自的有點,這裡不再贅述,因為本人需要搜尋功能的是乙個單機應用,沒有百萬級的資料,感覺有點...

Lucene 全文檢索技術介紹

前言 本文只介紹了全文檢索的基礎概念,後面陸續會介紹 lucece 的使用。我們生活種的資料總體分為兩種 結構化資料和非結構化資料 常見的結構化資料也就是資料庫中的資料。在資料庫中搜尋很容易實現,通常都是使用sql語句進行查詢,而且能很快的得到查詢結果。為什麼資料庫搜尋很容易?因為資料庫中的資料儲存...