• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      用JSP調(diào)用Lucene包來實現(xiàn)全文檢索

      2007-07-05 01:40:06
      智能計算機與應(yīng)用 2007年3期
      關(guān)鍵詞:全文檢索子程序引擎

      陸 云

      摘要:介紹了實現(xiàn)全文檢索的三個組件(Tomcat、JSP、Lucene)對應(yīng)全文檢索系統(tǒng)結(jié)構(gòu).給出了具體實現(xiàn)的運作流程和主要部分的核心代碼及相應(yīng)說明。

      關(guān)鍵詞:Tomcat+JSP+Lucene運作流程核心代碼說明

      中圖分類號TP311.56

      文獻標(biāo)識碼B文章編號:1002-2422(2007)03-0029-02

      1Tomcat+JSP+Lvcene

      1.1Tomcat的Web服務(wù)器

      Web服務(wù)器是在網(wǎng)絡(luò)中為實現(xiàn)信息發(fā)布、資料查詢、數(shù)據(jù)處理等諸多應(yīng)用搭建基本平臺的服務(wù)器。Tomcat Server是根據(jù)Servlet和JSP規(guī)范進行執(zhí)行的,是一個十分有用的網(wǎng)絡(luò)應(yīng)用開發(fā)服務(wù)平臺。它的下載、安裝、使用見網(wǎng)站:http://Aomcat.apache.org/

      1.2JSP(Java Server Pages)

      JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)是用JAVA語言作為腳本語言的,JSP網(wǎng)頁為整個服務(wù)器端的JAVA庫單元提供了一個接口來服務(wù)于HTTP的應(yīng)用程序。

      在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(*.jsp)。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。

      1.3Lucene

      Lucene是Apache的開源項目,是用Java寫的全文索引引擎工具包。它提供了許多簡單實用的API,用這些API,就可以方便的嵌入到各種應(yīng)用中,對任何基于文本的數(shù)據(jù)進行全文檢索。

      Lucene是用Java寫的,它的運行、調(diào)試都需要有JavaSDK。Lucene的下載、安裝、使用見網(wǎng)站:http://Aucene.apache.org/

      2全文檢索的實現(xiàn)

      2.1全文檢索系統(tǒng)的結(jié)構(gòu)

      全文檢索系統(tǒng)是按照全文檢索理論建立起來的用于提供全文檢索服務(wù)的軟件系統(tǒng)。一般來說,全文檢索需要具備建立索引和提供查詢的基本功能,此外現(xiàn)代的全文檢索系統(tǒng)還需要具有方便的用戶接口、面向www的開發(fā)接口、二次應(yīng)用開發(fā)接口等等。結(jié)構(gòu)上,全文檢索系統(tǒng)核心具有索引引擎、查詢引擎、文本分析引擎、對外接口等等,加上各種外圍應(yīng)用系統(tǒng)等共同構(gòu)成了全文檢索系統(tǒng)。當(dāng)然,全文檢索系統(tǒng)中最為關(guān)鍵的部分是全文檢索引擎,各種應(yīng)用程序都需要建立在這個引擎之上。

      (1)核心部分+檢索引擎:在java平臺上,便用Lucene的API編輯、調(diào)試好全文檢索程序*.java;

      (2)開發(fā)接口:編輯*.html文件,加入調(diào)試好的全文檢索程序*.java和相應(yīng)的JSP標(biāo)記(tag);

      (3)Web應(yīng)用程序:Tomcat提供網(wǎng)絡(luò)應(yīng)用開發(fā)服務(wù)平臺,在它的基礎(chǔ)上執(zhí)行*.jsp,最后的程序以*.jsp的形式出現(xiàn),執(zhí)行時先啟動Tomcat,設(shè)定好端口,在地址欄輸入相應(yīng)的*.jsp。

      2.2全文檢索實現(xiàn)主要部分的核心代碼和相應(yīng)分析

      一個全文檢索系統(tǒng)的核心部分是建立索引,形成索引文件,然后依據(jù)客戶輸入的索引關(guān)鍵字(詞),再查找索引文件,形成對應(yīng),最后按客戶的要求返回檢索結(jié)果,好的檢索程序應(yīng)提供良好界面便于客戶查看檢索結(jié)果。

      下面附具體實現(xiàn)對應(yīng)各主要部分的核心代碼和相應(yīng)分析。

      2.2.1建立索引

      程序中所用類別:

      page import=“java.io.*,org.apache.lucene.analysis.*,org.apache.lucene.document.*,org.apache.lucene.index.*,org.apache.lucene.searchh.*,org.apache.lucene.queryPamer.*,org.apoche.lucene.analysis.cn.ChineseAnalyzer,org.apache.lucene.store.Directery,org.apache.lucene.store.FSDirectory

      (1)建索引的子程序

      public void indexDocs(IndexWriter writer,File fileFile)throwsIOException{

      ∥do not try to index files that cannot be read

      if(fihFile.canRead())

      }

      if(fileFile.isDirectory()){

      String[] files=fileFile.fist();

      ∥an IO error could occur

      if(files!=null)}

      for(int i=O;i<files.length;i++){

      遞歸調(diào)用,用于對于文件夾中文件的添加

      indexDocs(writer,new File(Filefile,fries[i]));}

      //Document表示一條被索引的記錄,對應(yīng)本程序即為一個文件,doc.add()語句應(yīng)用不同的模式加入文件的不同對象(文件名、所在文件夾、文件內(nèi)容)

      Document doc=new Document();

      String fdeName=fdeFile.getName();

      String dirName=fileFile.getPath()。subetring(15);

      doc.add(new Field(“flleName”,fdeName,F(xiàn)ield.Store.YES.Field.

      Index.UN_TOKENIZED));

      doe.add(new Field(“directoz7”,dirName,F(xiàn)ield.Store.YES,F(xiàn)ield.

      Index.UN_TOKENIZED):

      doc.add(new Field(“content”,new lnputStreamReader(new Fileln-putStream(fdeFile),“gb2312”)));

      //IndexWriter專門用于索引文件的寫入操作;根據(jù)開始部分定義IndexWfiter writer,writer為IndexWriter對象writer.addDocumem(doc);

      (2)索引建立的主體部分(含對以上子程序的調(diào)用)

      //StandandAnalyzer是一個標(biāo)準(zhǔn)分析器,用于對要索引的內(nèi)容進行切分處理,應(yīng)用對象為英文,全文檢索程序需要對網(wǎng)站內(nèi)大量數(shù)據(jù)進行檢索,應(yīng)用對象為中文.ChineseAnalyzer為中文分析器.

      Analyzer analyzer=new ChineseAnalyzer();

      IndexWriter iwriter=new IndexWriter(“webapps/search/testindex”,analyzer,true);

      iwriter.setMaxFieldLength(25000);

      //對子程序的調(diào)用

      indexDocs(iwriter,new File(“webapps/search/files”));

      猜你喜歡
      全文檢索子程序引擎
      藍谷: “涉藍”新引擎
      商周刊(2017年22期)2017-11-09 05:08:31
      Oracle數(shù)據(jù)庫全文檢索性能研究
      淺談子程序在數(shù)控車編程中的應(yīng)用
      無形的引擎
      河南電力(2015年5期)2015-06-08 06:01:46
      全文檢索引擎技術(shù)在電子病歷中的應(yīng)用
      基于Cocos2d引擎的PuzzleGame開發(fā)
      子程序在數(shù)控車加工槽中的應(yīng)用探索
      基于KySou的全文檢索系統(tǒng)的分析與優(yōu)化
      西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
      特色數(shù)據(jù)庫全文檢索系統(tǒng)的設(shè)計
      沁水县| 黄陵县| 青冈县| 瑞昌市| 巩留县| 阿图什市| 南开区| 鄂伦春自治旗| 湖南省| 义马市| 根河市| 临海市| 桐城市| 栾川县| 忻城县| 雷山县| 雅安市| 镇远县| 岳池县| 隆回县| 内黄县| 石城县| 突泉县| 沙田区| 福海县| 泸水县| 常德市| 乐平市| 伊春市| 阜新| 雅江县| 三门县| 张掖市| 临沂市| 正定县| 朝阳区| 临湘市| 盈江县| 元氏县| 满城县| 咸宁市|