天天看點

一步一步學lucene——(第二步:示例篇)lucene的下載下傳配置環境建立索引根據索引查詢索引過程中的幾個核心類搜尋過程中的幾個核心類

在上面的篇幅中我們已經了解到了lucene,及lucene到底是做什麼的,什麼情況下才能夠使用lucene,下面我們就結合一個例子來詳細說明一下lucene的API,看看lucene是如何工作的。

其實這個很簡單了,直接到baidu或者google上搜尋一下,一般情況下第一個就是我們要的連結。下邊給出lucene下載下傳的連結:

<a href="http://lucene.apache.org/">http://lucene.apache.org/</a>

                圖:lucene下載下傳首頁面

我們下面要做很多的測試,會建立很多的測試工程,如果一個一個手動的添加jar包會非常的麻煩,那麼我們就需要配置eclipse環境。

打開eclipse,選擇windows-&gt;preferences-&gt;java-&gt;build path-&gt;user libraries

将我們上邊下載下傳後的lucene中的包全部加載到這個使用者變量中。

               圖:eclipse中加入的使用者變量

下面這個程式就是讀取指定檔案夾下的檔案并且将檔案生成索引的過程,它有兩個參數,一個是要索引的檔案路徑,一個是索引存放的路徑。

我們将檔案放到我們硬碟的目錄上,然後通過程式建立索引。

索引程式如下:

一步一步學lucene——(第二步:示例篇)lucene的下載下傳配置環境建立索引根據索引查詢索引過程中的幾個核心類搜尋過程中的幾個核心類
一步一步學lucene——(第二步:示例篇)lucene的下載下傳配置環境建立索引根據索引查詢索引過程中的幾個核心類搜尋過程中的幾個核心類

View Code

然後在工程上點選右鍵Run-&gt;Run configuration,建立一個Java Application,輸入兩個參數一個是索引目錄,一個是檔案存放目錄

                    圖:配置運作界面

運作後可以行到分析結果,當然目錄中索引的内容不同得到的結果也就會不同。

        圖:索引txt檔案時輸出

因為這裡邊還沒涉及到中文的部分,是以我們查詢所有文檔中包括"RUNNING"的文檔。

程式内容如下:

一步一步學lucene——(第二步:示例篇)lucene的下載下傳配置環境建立索引根據索引查詢索引過程中的幾個核心類搜尋過程中的幾個核心類
一步一步學lucene——(第二步:示例篇)lucene的下載下傳配置環境建立索引根據索引查詢索引過程中的幾個核心類搜尋過程中的幾個核心類

同上操作,配置新的Java Application,如下圖:

                  圖:配置查詢參數

點選運作,可以得到運作結果。

也就是我們上面索引的檔案,當然,随着檔案的多少及大小,速度會不同,這裡隻是一個示範程式,你可以根據你本身的程式自行設定查詢條件。

IndexWriter

IndexWriter是索引過程的核心元件。用于建立一個新的索引并把文檔加到已有的索引中去,也可以向索引中添加、删除和更新被索引文檔的資訊。

Directory

Directory類描述了Lucene索引的存放位置。

Analyzer

Analyzer是分詞器接口,文本檔案在被索引之前,需要經過Analyzer處理。常用的中文分詞器有庖丁、IKAnalyzer等。

Document

Document對象代表一組域(Field)的集合。其實說白了就是檔案,可能是文本檔案,word或者pdf等。

Field

Field就是每個文檔中包含的不同的域。

lucene建構索引的流程圖如下:

                圖:lucene建構索引流程

IndexSearcher

IndexSearcher是對前邊IndexWriter建立的索引進行搜尋。

Term

Term對象是搜尋功能的基本單元,跟Field對象非常類似,可以放入我們查詢的條件。

Query

Query就是Lucene給我們的查詢接口,它有很多的子類,我們可以基于這些進行功能豐富的查詢。

TermQuery

TermQuery是Lucene提供的最基本的查詢類型。

TopDocs

TopDocs類是一個簡單的指針容器,指針一般指向前N個排名的搜尋結果,搜尋結果即比對查詢條件的文檔。

                    圖:lucene查詢請求流程

<a href="http://files.cnblogs.com/skyme/1_HelloLucene.rar">[源碼下載下傳]</a>

<a href="http://www.cnblogs.com/skyme/archive/2012/07/29/2613970.html">一步一步學lucene——(第一步:概念篇)</a>

<a href="http://www.cnblogs.com/skyme/archive/2012/07/30/2615054.html">一步一步學lucene——(第二步:示例篇)</a>

<a href="http://www.cnblogs.com/skyme/archive/2012/07/31/2616213.html">一步一步學lucene——(第三步:索引篇)</a>

<a href="http://www.cnblogs.com/skyme/archive/2012/08/01/2618341.html">一步一步學lucene——(第四步:搜尋篇)</a>

繼續閱讀