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

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

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

    szhswl
    宋針還的個人空間
    //初始化IndexSearcher
    IndexSearcher search = new IndexSearcher(path);
    //構建Term
    Term term = new Term(fieldName,value);
    //構建Query對象
    Query q = new TermQuery(term);
    //檢索
    Hits hits = search.search(q);
    //顯示查詢結果
    for(int i=0; i<hits.length(); i++)
    {
     System.out.println(hits.doc(i));
    }

    IndexSearcher的常用方法有
    search(Query q);
    search(Query q,Filter filter);
    search(Query q,Sort sort);
    search(Query q,Filter filter,Sort sort);

    Hits的常用方法有
    doc(i); //得到第i個Document
    id(i);  //得到第i個Document在lucene文件中的id號
    length(); //結果集的數量
    score(i); //第i個Doucment的文檔得分,默認顯示方式為score值越高,排得越前。score取值0-1之間
    如果想提高score的值。可以有建立索引時設置,用Field.setBoost(Float f)方法
    Field f = new Field(fieldname,value,store,tokenized);
    f.setBoost(5f);

    在lucene中,document ID 越小,查詢時所需時間越短,因為Hits的內部緩存機制。

    Lunece的常用搜索

    一、TermQuery 詞條搜索
    Query query = new TermQuery(new Term(fieldname,value));

    二、BooleanQuery 布爾搜索
    建立二個TermQuery
    Query q1 = new TermQuery(new Term(fieldname1,value1));
    Query q2 = new TermQuery(new Term(fieldname2,value2));
    建立BooleanQuery對象
    BooleanQuery query = new BooleanQuery();
    query.add(q1,BooleanClause.Occue.MUST);
    query.add(q2,BooleanClause.Occue.MUST);
    BooleanClause.Occue 有三個靜態值
    MUST,MUST_NOT,SHOULD
    must&&must = (AnB)
    must&&must_not = (A-(AnB))
    should&&should = (AuB)

    三、RangeQuery 范圍搜索
    RangeQuery query = new RangeQuery(begin,end,false);
    begin = new Term(fieldname,value);
    end = new Term(fieldname,value);
    false 表示開區間 不包括 (begin,end) true 表示閉區間 包括 [begin,end]

    四、PrefixQuery 前綴搜索
    PrefixQuery query = new PrefixQuery(new Term(fieldname,value));

    五、PhraseQuery 短語搜索
    PhraseQuery query = new PhraseQuery();
    query.add(new Term(fieldname,value));
    query.add(new Term(fieldname,value));
    還可以設置坡度,query.setSlop(int n),默認為0如查詢“鋼鐵”,可以用
    query.add(new Term(fieldname,”鋼”));
    query.add(new Term(fieldname,”鐵”));
    如想把“鋼和鐵”,“鋼與鐵”也查詢出來。可以加上query.setSlop(1);

    六、MultiPhraseQuery 多短語搜索
    MultiPhraseQuery query = new MultiPharseQuery();
    //加入短語的前綴
    query.add(new Term(fieldname,value));
    //加入短語的后綴
    query.add(new Term[] {new Term(fieldname,value), new Term(fieldname,value)});

    七、FuzzyQuery 模糊搜索
    FuzzyQuery query = new FuzzyQuery(new Term(filed,value));
    它的三個構造函數
    FuzzyQuery(Term t);
    FuzzyQuery(Term t,float 0.5f); 相似度。0-1之間
    FuzzyQuery(Term t,float 0.5f,int prefixLength);前綴必須相同的長度

    本文轉自:http://job5156.xicp.net/?p=72



    ---------------------------------------------------------------------------------------------------------------------------------
    說人之短,乃護己之短。夸己之長,乃忌人之長。皆由存心不厚,識量太狹耳。能去此弊,可以進德,可以遠怨。
    http://www.tkk7.com/szhswl
    ------------------------------------------------------------------------------------------------------ ----------------- ---------
    posted on 2007-12-10 19:51 宋針還 閱讀(651) 評論(0)  編輯  收藏 所屬分類: 搜索引擎
    主站蜘蛛池模板: 日本中文字幕免费看| 亚洲欧洲精品成人久久曰| 一区在线免费观看| 亚洲国产成人精品91久久久| 久久久久久亚洲精品无码| 麻豆国产人免费人成免费视频| 亚洲AV日韩综合一区| 免费国产精品视频| 特级做a爰片毛片免费看| 亚洲伦乱亚洲h视频| 在线看片免费人成视频久网下载 | 亚洲精品无码精品mV在线观看| 国产免费播放一区二区| 久久精品国产亚洲香蕉| 4399影视免费观看高清直播| 亚洲ts人妖网站| 又粗又大又猛又爽免费视频| 国产精品福利片免费看| 亚洲av色影在线| 免费精品国偷自产在线在线| 韩国亚洲伊人久久综合影院| 中文字幕第一页亚洲| 无码中文字幕av免费放dvd| 亚洲一级片在线观看| 国产一区二区三区在线免费观看| 黄人成a动漫片免费网站| 亚洲AV无码乱码在线观看裸奔| 青春禁区视频在线观看直播免费| 亚洲日韩在线中文字幕综合 | 和日本免费不卡在线v| 精品在线观看免费| 久久国产亚洲精品麻豆| 日韩av无码成人无码免费| 成年大片免费视频播放一级| 精品亚洲国产成AV人片传媒| 在线观看免费大黄网站| 亚洲免费观看视频| 亚洲丁香婷婷综合久久| 久久精品国产亚洲夜色AV网站| 日本黄色免费观看| 午夜无码A级毛片免费视频 |