版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、LuceneLucene初級教程初級教程2007122615:24點擊次數(shù):0次1lucene簡介1.1什么是luceneLucene是一個全文搜索框架,而不是應用產品。因此它并不像或者googleDesktop那么拿來就能用,它只是提供了一種工具讓你能實現(xiàn)這些產品。2lucene的工作方式lucene提供的服務實際包含兩部分:一入一出。所謂入是寫入,即將你提供的源(本質是字符串)寫入索引或者將其從索引中刪除;所謂出是讀出,即向用戶提供
2、全文搜索服務,讓用戶可以通過關鍵詞定位源。2.1寫入流程源字符串首先經過analyzer處理,包括:分詞,分成一個個單詞;去除stopwd(可選)。將源中需要的信息加入Document的各個Field中,并把需要索引的Field索引起來,把需要存儲的Field存儲起來。將索引寫入存儲器,存儲器可以是內存或磁盤。2.2讀出流程用戶提供搜索關鍵詞,經過analyzer處理。對處理后的關鍵詞搜索索引找出對應的Document。用戶根據需要從找
3、到的Document中提取需要的Field。3一些需要知道的概念3.1analyzerAnalyzer是分析器,它的作用是把一個字符串按某種規(guī)則劃分成一個個詞語,并去除其中的無效詞語,這里說的無效詞語是指英文中的“of”、“the”,中文中的“的”、“地”等詞語,這些詞語在文章中大量出現(xiàn),但是本身不包含什么關鍵信息,去掉有利于縮小索引文件、提高效率、提高命中率。分詞的規(guī)則千變萬化,但目的只有一個:按語義劃分。這點在英文中比較容易實現(xiàn),因
4、為英文本身就是以單詞為單位的,已經用空格分開;而中文則必須以某種方法將連成一片的句子劃分成一個個詞語。具體劃分方法下面再詳細介紹,這里只需了解分析器的概念即可。3.2document用戶提供的源是一條條記錄,它們可以是文本文件、字符串或者數(shù)據庫表的一條記錄等等。一條記錄經過索引之后,就是以一個Document的形式存儲在索引文件中的。用戶進行搜索,也是以Document列表的形式返回。3.3field一個Document可以包含多個信息
5、域,例如一篇文章可以包含“標題”、“正文”、“最后修改時間”等信息域,這些信息域就是通過Field在Document中存儲的。Field有兩個屬性可選:存儲和索引。通過存儲屬性你可以控制是否對這個Field進行存儲;通過索引屬性你可以控制是否對該Field進行索引。這看起來似乎有些廢話,事實上對這兩個屬性的正確組合很重要,下面舉例說明:還是以剛才的文章為例子,我們需要對標題和正文進行全文搜索,所以我們要把索引屬性設置為真,同時我們希望能
6、直接從搜索結果中提取文章標題,所以我們把標題域的存儲屬性設置為真,但是由于正文域太大了,我們?yōu)榱丝s小索引文件大小,將正文域的存儲屬性設置為假,當需要時再直接讀取文件;我們只是希望能從搜索解果中提取最后修改時間,不需要對它進行搜索,所以我們把最后修改時間域的存儲屬性設置為真,索引屬性設置為假。上面的三個域涵蓋了兩個屬性的三種組合,還有一種全為假的沒有用到,事實上Field不允許你那么設置,因為既不存儲又不索引的域是沒有意義的。據庫是差不多
7、的(有點像),Document可以看作是數(shù)據庫的一行記錄,F(xiàn)ield可以看作是數(shù)據庫的字段。用lucene實現(xiàn)搜索引擎就像用JDBC實現(xiàn)連接數(shù)據庫一樣簡單。Lucene2.0,它與以前廣泛應用和介紹的Lucene1.4.3并不兼容。Lucene2.0的下載地址是:apache.justdn.glucenejava例子一:1、在windows系統(tǒng)下的的C盤,建一個名叫s的文件夾在該文件夾里面隨便建三個txt文件,隨便起名啦,就叫“1.tx
8、t““2.txt“和“3.txt“啦其中1.txt的內容如下:中華人民共和國全國人民2006年而“2.txt“和“3.txt“的內容也可以隨便寫幾寫,這里懶寫,就復制一個和1.txt文件的內容一樣吧2、下載lucene包,放在classpath路徑中建立索引:packagelighter.imptjava.io.BufferedReaderimptjava.io.Fileimptjava.io.FileInputStreamimptja
9、va.io.IOExceptionimptjava.io.InputStreamReaderimptjava.util.Dateimptg.apache.lucene.analysis.Analyzerimptg.apache.lucene.analysis.stard.StardAnalyzerimptg.apache.lucene.document.Documentimptg.apache.lucene.document.Field
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論