Lucene基本都是概念的東西,但願等我本身回頭看的時候還能記起來點就行

Luceneapache下的一個開放源代碼的全文檢索引擎工具包。提供了完整的查詢引擎和索引引擎,部分文本分析引擎。Lucene的目的是爲軟件開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能。html

l Lucene是一套用於全文檢索和搜尋的開源程式庫,由Apache軟件基金會支 持和提供java

l Lucene提供了一個簡單卻強大的應用程式接口,可以作全文索引和搜尋, 在Java開發環境裏Lucene是一個成熟的免費開放源代碼工具數據庫

l Lucene並非現成的搜索引擎產品,但能夠用來製做搜索引擎產品apache

個人理解Luene其實就是一個搜索的插件或者框架,可是不是一個完整的產品,須要本身代碼去完善api

 

Lucene與搜索引擎的區別

全文檢索系統是按照全文檢索理論創建起來的用於提供全文檢索服務的軟件系統,包括創建索引、處理查詢返回結果集、增長索引、優化索引結構等功能。例如:百度搜索、eclipse幫助搜索、淘寶網商品搜索等。數據結構

搜索引擎是全文檢索技術最主要的一個應用,例如百度。搜索引擎起源於傳統的信息全文檢索理論,即計算機程序經過掃描每一篇文章中的每個詞,創建以詞爲單位的倒排文件,檢索程序根據檢索詞在每一篇文章中出現的頻率和每個檢索詞在一篇文章中出現的機率,對包含這些檢索詞的文章進行排序,最後輸出排序的結果。全文檢索技術是搜索引擎的核心支撐技術。框架

Lucene和搜索引擎不一樣,Lucene是一套用java或其它語言寫的全文檢索的工具包,爲應用程序提供了不少個api接口去調用,能夠簡單理解爲是一套實現全文檢索的類庫,搜索引擎是一個全文檢索系統,它是一個單獨運行的軟件系統eclipse

 

相關術語

 

文檔(Document:通常搜索引擎處理的對象是互聯網網頁,對於搜索引擎來說,WordPDFhtmlXML等不一樣格式的文件均可以稱爲文檔,通常以文檔來表示文本信息。工具

 

文檔集合(Document Collection:由若干文檔構成的集合成爲文檔集合。好比海量的互聯網網頁等。優化

 

文檔編號(Document ID:在搜索引擎內部,會爲文檔集合每一個文檔賦予一個惟一的內部編號,以做爲文檔的惟一標識,以便於處理。

 

單詞編號(Word ID:與文檔編號相似,搜索引擎內部以惟一的編號來表示某個單詞,以做爲某個單詞的惟一表示。

 

倒排索引(Inverted Index:倒排索引是實現單詞——文檔矩陣的一種具體存儲形式。經過倒排索引,能夠根據單次快速獲取包含這個單詞的文檔列表。倒排索引主要由兩個部分組成:單詞詞典和倒排文件

 

單詞詞典Lexicon:搜索引擎一般的索引單位是單詞,單詞詞典是由文檔集合中出現過的全部單詞構成的字符串集合,單詞詞典內每條索引記載單詞自己的一些信息及指向倒排列表的指針。單詞也就是咱們在搜索的一些關鍵字,也稱爲詞條

 

倒排列表(PostingList:倒排列表記載了出現過某個單詞的全部文檔的文檔列表及單詞在該文當中出現的位置信息,每條記錄成爲一個倒排向(Posting)。根據倒排列表,便可獲知哪些文檔包含某個單詞。

 

倒排文件Inverted File:全部單詞的倒排列表每每順序地存儲在磁盤的某個文件裏,這個文件即爲倒排文件,倒排文件是存儲倒排索引的物理文件。

 

 

 順序掃描

 

所謂順序掃描,例如要找內容包含一個字符串的文件,就是一個文檔一個文檔的看,對於每個文檔,從頭看到尾,若是此文檔包含此字符串,則此文檔爲咱們要找的文件,接着看下一個文件,直到掃描完全部的文件。這種方法是順序掃描方法,數據量大就搜索慢。

 

倒排索引

 

倒排索引(也稱爲倒排文件)是一種存儲了來自文本中的映射的索引數據結構。好比單詞或者數字,對應到它們在數據庫、一個文件或者一組文件中的位置。它是在文檔檢索系統中使用的最流行的數據結構,在搜索引擎中有大規模使用案例

 

例如咱們使用新華字典查詢漢字,新華字典有偏旁部首的目錄(索引),咱們查字首先查這個目錄,找到這個目錄中對應的偏旁部首,就能夠經過這個目錄中的偏旁部首找到這個字所在的位置(文檔)。

 

 

 

倒排索引作兩件事情:

 

 

 

一、 提取資源中關鍵信息, 創建索引 (目錄)

 

二、 搜索時,根據關鍵字(目錄),找到資源的位置

應用場景

1、 單機軟件的搜索(word中的搜索)

2、 站內搜索 (baidu貼吧、論壇、 京東、 taobao

3、 垂直領域的搜索 (docin豆丁、拉勾、100offer

4、 專業搜索引擎公司 (googlebaidu

相關文章
相關標籤/搜索