Lucene是Apache.org的一個開源搜索引擎框架,它包含在Jakarta開源項目家族中。Lucene提供了用于搜索和索引不同類型文件和數(shù)據(jù)提供者的庫。
因為Lucene是一個搜索框架,所以創(chuàng)建并運行它需要做一些工作。沒有一個安裝程序或是GUI工具讓您配置運行Lucene搜索引擎,但是,Lucene通過簡單的配置就可以直接手工安裝,并且提供一系列功能強大的搜索API。
可下載的軟件包提供了一些模塊用來索引本地存儲的文本文件和html內(nèi)容。另外,定制模塊可以從網(wǎng)絡(luò)上創(chuàng)建或是下載。LARM插件是一個很好的例子,它里面允許Lucene與crawler功能的集成。
Lucene有兩個主要的服務(wù):索引和搜索。索引和搜索的任務(wù)是相互獨立的。索引和搜索服務(wù)都可用,這樣開發(fā)人員就可以擴展他們來滿足自己的需求。Lucene完全由Java編寫,并且十分注重性能。
文本索引是 Lucene 重點構(gòu)造的一個可搜尋的索引區(qū)域。索引是為高性能內(nèi)容查詢而創(chuàng)建的知識庫。Lucene提供豐富的API可以與存儲在索引中的信息交互。您可以簡單地指定索引作為文檔名稱列表和它的摘要;也可以復(fù)雜地指定索引作為整個文檔存儲內(nèi)容和相關(guān)的附加元數(shù)據(jù)。例如:可以按附加的元數(shù)據(jù)信息排隊,這樣,查詢結(jié)果中就可以區(qū)分出優(yōu)先級較高的一些文檔。
文本檢索在索引中創(chuàng)建一個包含一系列用戶搜索條件的查詢。索引知識庫的建立可以提高查詢速度,并且可以返回按相關(guān)性排序的查詢結(jié)果。Lucene提供多種類型的行業(yè)中常用的查詢。幾種主要的查詢?nèi)缦卤恚?/P>
- 通配符查詢:Lucene支持單個或多個通配符查詢。
- 模糊查詢:模糊查詢是基于Levenshtein Distance或者Edit Distance算法的。
- 類似查詢:Lucene支持在一定的具體范圍內(nèi)查找詞組。
- 區(qū)間查詢:區(qū)間查詢允許按照介于最大至于最小值之間來匹配文檔。
- 條件查詢:Lucene提供基于條件發(fā)現(xiàn)的文檔匹配級別。
- 布爾運算符:布爾運算符允許多個檢索條件用邏輯運算符連接,Lucene支持 AND、“+”、OR、NOT和“-”作為布爾運算符。
開始 要開始使用Lucene,首先要下載Lucene的JAR文件和搜索模塊示例。它們可以從下面網(wǎng)址獲取 http://jakarta./lucene/docs/index.html 或者 http://cvs./dist/jakarta/lucene/v1.3-final/
本文撰寫時使用的版本是Lucene1.3,也可以下載最新發(fā)布的版本。您可以通過閱讀changes.txt文件來了解新版本比1.3版有哪些更新。
首先下載與本文相關(guān)的示例代碼壓縮文件,包括:
- Lucene 搜索的Java頁面流
- Lucene 搜索的portlet文件
- Lucene庫
- 示例內(nèi)容l 示例索引
|
下載作者提供的與本文相關(guān)的文件:
| |
在WebLogic Portal 8.1 sp2平臺的Sampleportal中添加Lucene 下面分步講解如何安裝Lucene和Lucene示例。
1、設(shè)置JAVA_HOME指向您的Java安裝目錄,這樣可以針對例子內(nèi)容運行索引引擎。
2、 您可以使用示例包中的Lucene庫,也可以從Lucene站點獲得最新的包。獲得了Lucene jar文件(lucene-1.3-final.jar,lucene-demos-1.3-final.jar)后,把它們放到以下目錄中: <install_drive>\bea\weblogic81\samples\portal\portalApp\sampleportal\WEB-INF\lib
3、要運行索引程序,把步驟1中的兩個jar文件放到Java CLASSPATH中以便進行索引。
4、放置文件LuceneSearch 到Sampleportal的根目錄下。得到類似如下的目錄結(jié)構(gòu): <install_drive>\bea\weblogic81\samples\portal\portalApp\sampleportal\LuceneSearch LuceneSearch文件夾中有一個Content目錄,它里面有具體的一些示例內(nèi)容文本文件。 <install_drive>\bea\weblogic81\samples\portal\portalApp\sampleportal\LuceneSearch\Content 索引最好創(chuàng)建完成,以防萬一您不想在下一步中花時間來運行索引。
5、在Sampleportal webapp目錄下執(zhí)行如下命令行,運行內(nèi)容目錄下的索引。 <應(yīng)用程序路徑> java org.apache.lucene.demo.IndexFiles <內(nèi)容路徑> 將得到如下界面: <install_drive>\bea\weblogic81\samples\portal\portalApp\sampleportal java org.apache.lucene.demo.IndexFiles <install_drive>\bea\weblogic81b\samples\portal\portalApp\sampleportal\ LuceneSearch\Content

這個例子中,示例包里有一系列簡單的內(nèi)容文本文件,這些文件與BEA的產(chǎn)品系列相關(guān)。
6、索引任務(wù)完成后,結(jié)果應(yīng)該是在您的內(nèi)容目錄下創(chuàng)建一個索引目錄,如下: <install_drive>\bea\weblogic81\samples\portal\portalApp\sampleportal\ LuceneSearch\Content\index
7、索引創(chuàng)建后,再返回配置一個portlet以便與索引通信。示例包中有一個簡單的java頁面流例子,它和Lucene引擎通信,并且假定索引在Sampleportal目錄中。啟動WebLogic Workshop,從菜單欄中選擇File>>Open Application>>Pick the PortalApp應(yīng)用程序,它包含了Sampleportal。

8、您可能要調(diào)整Java頁面流和Jsp頁面中的代碼來適用您的環(huán)境。查詢結(jié)果頁面是由results.jsp頁面顯示的,這??癨??個jsp可以從Lucene站點上獲取。所有的調(diào)整都完成后,下一步就是把Lucene Search portlet添加到Sampleportal上。這一步可以直接在WebLogic Workshop 上把portlet拖到Portal Designer中,或者右擊Portal designer,然后從portlets列表中選擇。
然后從Portal菜單中選擇View this Portal。

9、在portal出現(xiàn)后,您可以測試查詢portlet,看看查詢結(jié)果。

如何在BEA WebLogic Portal 8.1平臺使用Lucene? WebLogic Portal 8.1 在Administration Portal幫助系統(tǒng)中使用Lucene的標(biāo)準(zhǔn)功能。幫助系統(tǒng)的內(nèi)容是基于HTML的文檔,索引被置于Administration Portal Web應(yīng)用程序中。由于Administration Portal被部署在擴展名為.war的壓縮包文件中,還需要其他操作使Lucene與索引文件協(xié)調(diào)。
可以隨時通過點擊Administration Portal右上方的幫助圖標(biāo)進入上下文幫助系統(tǒng)。從下圖中您可以看到幫助系統(tǒng)返回一系列查詢結(jié)果,這些查詢結(jié)果是分頁顯示的。除此之外,還有很多搜索技巧可以幫助您找到想要的結(jié)果。

結(jié)束語 Lucene 搜索引擎是完全基于Java的搜索框架,它可以很方便地集成到您的Web應(yīng)用程序中。此外,Internet上的一些插件可以提高搜索庫的性能,增強從不同數(shù)據(jù)源獲取數(shù)據(jù)的能力。 您可以從以下鏈接獲取Lucene庫和一些其他的相關(guān)信息: Lucene主頁: http://jakarta./lucene/docs/index.html 性能基準(zhǔn):http://jakarta./lucene/docs/benchmarks.html FAQ:http://lucene./cgi-bin/faq/faqmanager.cgi 運行Lucene的站點:http://wiki./jakarta-lucene/PoweredBy 原文出處:http://dev2dev./products/wlportal81/articles/lucene_search_wlp81.jsp |