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

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

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

    george

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      12 Posts :: 0 Stories :: 17 Comments :: 0 Trackbacks

    關于這個內(nèi)容javaeye已經(jīng)有不錯的例子了
    http://jnotnull.javaeye.com/blog/275327

    在這個例子的基礎上我想說一一些需要注意的地方。
    1.重建索引和增量索引
    IndexWriter writer = new IndexWriter(directory,analyzer,rebuild,new IndexWriter.MaxFieldLength(200000));

    只需要在構造IndexWriter的時候設置rebuild值就可以了
    當rebuild設為true的時候:就會刪除原來的索引,重建索引文件
    當rebuild設為false時:表示增量索引,是在原來索引文件的基礎上增加新的索引內(nèi)容,當然第一次沒有索引文件的時候必須先重建索引生成索引文件。

    在lucene2.4中不使用Field.Index.TOKENIZED而是使用Field.Index.ANALYZED,表示要對這個field進行分詞
    if(article.getArticleId()!=null)
        doc.add(
    new Field(Fields.FIELD_ARTICLEID,article.getArticleId(),Field.Store.YES,Field.Index.NOT_ANALYZED));
    if(article.getTitle()!=null)
        doc.add(
    new Field(Fields.FIELD_TITLE,article.getTitle(),Field.Store.YES,Field.Index.ANALYZED));
    當然這里的Fields.FIELD_ARTICLEID是自定義的類變量

    2.分頁檢索

    ScoreDoc[] hits = searcher.search(query,null,startIndex+perPage,new Sort(new SortField(Fields.FIELD_CHECKTIME,SortField.AUTO,true))).scoreDocs;
    int numTotalHits = searcher.maxDoc();//hits.length;
    int endIndex = Math.min(numTotalHits,startIndex + perPage);
    使用searcher.maxDoc()取出搜索的總記錄數(shù),使用search(query,null,startIndex+perPage,new Sort(new SortField(Fields.FIELD_CHECKTIME,SortField.AUTO,true))).scoreDocs取出當前一頁的索引記錄(這個是2.4的新用法,可以獲得更高的性能),new Sort(new SortField(Fields.FIELD_CHECKTIME,SortField.AUTO,true)))來處理索引結果的排序。
    Document doc =searcher.doc(hits[i].doc);
    String title1 
    = doc.get(Fields.FIELD_TITLE);
    使用searcher.doc(hits[i].doc)取出索引的具體記錄

    3.高亮顯示
    SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("<b><font color='red'>""</font></b>");
    Highlighter highlighter 
    = new Highlighter(simpleHTMLFormatter,
                        
    new QueryScorer(query));           
    highlighter.setTextFragmenter(
    new SimpleFragmenter(bestMatchSize));
    if (title1 != null) {
        TokenStream tokenStream 
    = analyzer.tokenStream(Fields.FIELD_TITLE,
                            
    new StringReader(title1));
        highLightTitle 
    = highlighter.getBestFragment(tokenStream,title1);
    }
    new SimpleHTMLFormatter("<b><font color='red'>""</font></b>")構造高亮顯示的樣式。
    highlighter.setTextFragmenter(new SimpleFragmenter(bestMatchSize))設置顯示索引內(nèi)容的最大字符數(shù),相當于自動抽取含有關鍵的摘要。


    當然這個只是簡單索引和檢索過程。
    還有一些其他工作要做:
    1.索引的過程就是查詢的過程,需要把沒有索引的文章查詢出來進行索引,完畢有要打上標記。這里面就要為文章擴展索引標記,建立一些文章查詢。
    2.將索引操作加入調(diào)度定時執(zhí)行,這個用quartz就可以了。



    posted on 2009-03-18 21:48 georgeliu 閱讀(1623) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 最新亚洲精品国偷自产在线| 久久丫精品国产亚洲av不卡| 无码亚洲成a人在线观看| 曰批全过程免费视频播放网站| 亚洲av福利无码无一区二区 | 国产精品国产自线拍免费软件| 亚洲国产精品专区| 亚洲成人免费电影| 亚洲国产成人资源在线软件| 在线观看av永久免费| 亚洲精品456人成在线| 黄瓜视频高清在线看免费下载| 亚洲国产系列一区二区三区 | 美女露隐私全部免费直播| 国产一级淫片视频免费看| 四虎精品成人免费视频| 久久国产成人精品国产成人亚洲| a级黄色毛片免费播放视频| 亚洲精品免费观看| 亚洲精品免费在线| 亚洲熟妇无码八V在线播放| 国产成人免费片在线观看| 国产精品免费大片一区二区| 亚洲AV无码专区国产乱码电影| 99爱在线观看免费完整版 | 看成年女人免费午夜视频| 亚洲人成电影网站国产精品| 日韩免费的视频在线观看香蕉| 亚洲精品在线免费观看| 日韩免费视频一区| 日本一区午夜艳熟免费| 亚洲av无码不卡久久| 又黄又爽一线毛片免费观看| 成人爽a毛片免费| 亚洲性线免费观看视频成熟| 亚洲精品成人久久久| 一级毛片免费毛片一级毛片免费| 亚洲aⅴ无码专区在线观看| 国产亚洲综合网曝门系列| 成年女人毛片免费播放人| 免费无码婬片aaa直播表情|