<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-6  評論-6  文章-2  trackbacks-0
    原文:http://hedong.3322.org/archives/000206.html

    Lucene是一套全文檢索的API,對其介紹的文章和應用的案例都多,可參考lucene及本文的參考文獻。
      此次學習,以實用為主,一是簡單應用,二是Web應用,三是漢化,四相關應用(Lucene主頁上在SandBox中)。

    0、準備工作
      去Lucene的主頁下載目前的穩定版本lucene-1.2.tar.gz,解壓縮,將lucene-1.2目錄下的兩個jar文件lucene-1.2.jar和lucene-demo2-1.2.jar放到適當的目錄下后,并將其加入到CLASSPATH環境變量中。

    tar zxvf lucene-1.2.tar.gz <----解壓縮
    cd lucene-1.2
    cp *.jar $DP<---存放jar文件的目錄,根據具體工作要求用實際目錄替換
    CLASSPATH=$CLASSPATH:$DP/lucene-1.2.jar:$DP/lucene-demos-1.2.jar; export CLASSPATH
    winclasspath.gif如果不想在每次都登錄后,可以編輯/etc/profile或自己目錄下的.profile,將上面的最后一行加到文件的最后一行。Windows的設置,右擊桌面的“我的電腦”,選“高級”->“環境變量”->選中CLASSPATH->“編輯”,在輸入框中加入兩個jar文件的全路徑名,注意分隔符是分號(;)。參見右圖。

    1、運行demo

    $ java org.apache.lucene.demo.IndexFiles /usr/local/man/man1/ <--對man文件建立索引
    adding /usr/local/man/man1/mysql.1
    ...........
    adding /usr/local/man/man1/cvs.1
    1614 total milliseconds
    $ java org.apache.lucene.demo.SearchFiles <--進行檢索
    Query: password
    Searching for: password
    7 total matching documents
    0. /usr/local/man/man1/mysql.1
    ......
    6. /usr/local/man/man1/mysqlshow.1
    Query:
    OK!Lucene自待的demo運行成功
    這個demo程序調用的主要API函數:
    /*關于索引的主要函數*/
    File file=new File(argv[]);
    IndexWriter writer = new IndexWriter("index", new StandardAnalyzer(), true);

    Document doc = new Document();
    doc.add(Field.Text("path", file.getPath()));
    doc.add(Field.Keyword("modified",DateField.timeToString(file.lastModified())));
    FileInputStream is = new FileInputStream(f);
    Reader reader = new BufferedReader(new InputStreamReader(is));
    doc.add(Field.Text("contents", reader));

    writer.addDocument(doc);

    writer.optimize();
    writer.close();

    /*關于檢索的主要函數*/
    Searcher searcher = new IndexSearcher("index");
    Analyzer analyzer = new StandardAnalyzer();
    Query query = QueryParser.parse(lineforsearch, "contents", analyzer);
    Hits hits = searcher.search(query);
    for (int i = start; i < hits.length(); i++) {
    Document doc = hits.doc(i);
    String path = doc.get("path");
    System.out.println(i + ". " + path);
    }


    3、運行LuceneWeb
      假定tomcat裝在$TOMCATHOME目錄下,具體應用時用真實的目錄替換$TOMCATHOME。

    cd $TOMCATHOME/webapps
    mkdir lucenedb
    cd lucenedb
    java org.apache.lucene.demo.IndexHTML -create -index $TOMCAT/webapps/lucenedb ../examples<--用相對路徑“..”,一來指明被索引的文件的位置,二來用來顯示被索引文件的URL,因為檢索的jsp程序在luceneweb子目錄下.examples可用其它的真實應用的目錄名來替換
    cd ..
    cp ~/lucene-1.2/luceneweb.war . <--luceneweb.war在你解壓縮生成的lucene-1.2目錄下
    ../bin/shudown.sh
    ../bin/startup.sh

    然后通過客戶端訪問http://yourdomain.com:8080/luceneweb,如果順利瀏覽器應出現右邊所示的內容。luceneweb-1.gif.再到服務器端
    cd luceneweb
    vi configuration.jsp <--將indexLocation 的值改為 "$TOMCATHOME/webapps/lucenedb";
    cd ..
    jar -ur luceneweb.war luceneweb
    再到客戶端,刷新剛才的頁面,然后就可以輸入單詞進行檢索了。遺憾的是,此是只能檢索英文單詞。且如果命中的html頁面的title是漢字的話,顯示也有問題。如圖。
    luceneweb-2.gif
      此處的IndexHTML,可以對htm、html和txt類型的文件進行索引,用的是一個HTMLParser,除此以外與上一例基本相同。
    posted on 2005-06-30 11:33 gaich 閱讀(631) 評論(0)  編輯  收藏 所屬分類: J2EE應用

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 精品女同一区二区三区免费播放| 亚洲手机中文字幕| 又粗又长又爽又长黄免费视频| 四虎www免费人成| 久久亚洲精品国产亚洲老地址| 91在线视频免费播放| 在线综合亚洲欧洲综合网站| 大地资源在线观看免费高清| 中日韩亚洲人成无码网站| 在线免费视频一区| 在线观看亚洲视频| 亚洲午夜激情视频| baoyu122.永久免费视频| 亚洲国产国产综合一区首页| 18观看免费永久视频| 亚洲综合av一区二区三区不卡| 午夜时刻免费入口| 暖暖免费中文在线日本| 亚洲精品字幕在线观看| 国产人成免费视频网站| 亚洲AV无码一区二区乱子仑| 亚洲无码精品浪潮| 国产大片91精品免费观看不卡| 亚洲日本VA午夜在线电影| 亚洲国产一级在线观看 | 91在线视频免费看| 国产精品亚洲专区无码牛牛 | 亚洲精品日韩一区二区小说| 免费看男女下面日出水视频| 日批视频网址免费观看| 亚洲三级视频在线| 亚洲国产精品成人久久蜜臀| 久久免费国产视频| 亚洲精品国产精品| 亚洲成A人片在线观看无码不卡| 永久免费AV无码国产网站 | 亚洲精品在线免费观看视频| 精品久久洲久久久久护士免费| 一级毛片免费观看不收费| 日木av无码专区亚洲av毛片| 免费A级毛片无码A∨男男|