Lucene txt搜索引擎

Lucene 是一個基於 Java 的全文信息檢索工具包,它不是一個完整的搜索應用程序,而是爲你的應用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一個開源項目。也是目前最爲流行的基於 Java 開源全文檢索工具包。

目前已經有很多應用程序的搜索功能是基於 Lucene 的,比如 Eclipse 的幫助系統的搜索功能。Lucene 能夠爲文本類型的數據建立索引,所以你只要能把你要索引的數據格式轉化的文本的,Lucene 就能對你的文檔進行索引和搜索。比如你要對一些 HTML 文檔,PDF 文檔進行索引的話你就首先需要把 HTML 文檔和 PDF 文檔轉化成文本格式的,然後將轉化後的內容交給 Lucene 進行索引,然後把創建好的索引文件保存到磁盤或者內存中,最後根據用戶輸入的查詢條件在索引文件上進行查詢。不指定要索引的文檔的格式也使 Lucene 能夠幾乎適用於所有的搜索應用程序。

Lucene 軟件包分析

Lucene 軟件包的發佈形式是一個 JAR 文件,下面我們分析一下這個 JAR 文件裏面的主要的 JAVA 包,使讀者對之有個初步的瞭解。

Package: org.apache.lucene.document

這個包提供了一些爲封裝要索引的文檔所需要的類,比如 Document, Field。這樣,每一個文檔最終被封裝成了一個 Document 對象。

Package: org.apache.lucene.analysis

這個包主要功能是對文檔進行分詞,因爲文檔在建立索引之前必須要進行分詞,所以這個包的作用可以看成是爲建立索引做準備工作。

Package: org.apache.lucene.index

這個包提供了一些類來協助創建索引以及對創建好的索引進行更新。這裏面有兩個基礎的類:IndexWriter 和 IndexReader,其中 IndexWriter 是用來創建索引並添加文檔到索引中的,IndexReader 是用來刪除索引中的文檔的。

Package: org.apache.lucene.search

這個包提供了對在建立好的索引上進行搜索所需要的類。比如 IndexSearcher 和 Hits, IndexSearcher 定義了在指定的索引上進行搜索的方法,Hits 用來保存搜索得到的結果。

 

建立索引

爲了對文檔進行索引,Lucene 提供了五個基礎的類,他們分別是 Document, Field, IndexWriter, Analyzer, Directory。下面我們分別介紹一下這五個類的用途:

Document

Document 是用來描述文檔的,這裏的文檔可以指一個 HTML 頁面,一封電子郵件,或者是一個文本文件。一個 Document 對象由多個 Field 對象組成的。可以把一個 Document 對象想象成數據庫中的一個記錄,而每個 Field 對象就是記錄的一個字段。

Field

Field 對象是用來描述一個文檔的某個屬性的,比如一封電子郵件的標題和內容可以用兩個 Field 對象分別描述。

Analyzer

在一個文檔被索引之前,首先需要對文檔內容進行分詞處理,這部分工作就是由 Analyzer 來做的。Analyzer 類是一個抽象類,它有多個實現。針對不同的語言和應用需要選擇適合的 Analyzer。Analyzer 把分詞後的內容交給 IndexWriter 來建立索引。

IndexWriter

IndexWriter 是 Lucene 用來創建索引的一個核心的類,他的作用是把一個個的 Document 對象加到索引中來。

Directory

這個類代表了 Lucene 的索引的存儲的位置,這是一個抽象類,它目前有兩個實現,第一個是 FSDirectory,它表示一個存儲在文件系統中的索引的位置。第二個是 RAMDirectory,它表示一個存儲在內存當中的索引的位置。

   實例演示下lucene使用

 

1 導入包lucene-1.4-final.jar

 

2 新建文件夾D:/lucene和D:/lucenedata分別用來存放生成的索引文件和txt搜索文件。

 

3編寫建立索引文件

 

運行結果:

Indexing file D:/lucenedata/111111.txt
Indexing file D:/lucenedata/1jinchun.txt
Indexing file D:/lucenedata/2jinchun.txt
Indexing file D:/lucenedata/3jinchun.txt
Indexing file D:/lucenedata/jinchun.txt
It takes 94 milliseconds to create index for the files in directory D:/lucenedata

 

4 編寫檢索文件,使用3中生成的索引文件

 

運行結果:

File: D:/lucenedata/1jinchun.txt
File: D:/lucenedata/jinchun.txt

 

 

 

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