<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);
    //構(gòu)建Term
    Term term = new Term(fieldName,value);
    //構(gòu)建Query對象
    Query q = new TermQuery(term);
    //檢索
    Hits hits = search.search(q);
    //顯示查詢結(jié)果
    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(); //結(jié)果集的數(shù)量
    score(i); //第i個Doucment的文檔得分,默認顯示方式為score值越高,排得越前。score取值0-1之間
    如果想提高score的值。可以有建立索引時設(shè)置,用Field.setBoost(Float f)方法
    Field f = new Field(fieldname,value,store,tokenized);
    f.setBoost(5f);

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

    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 有三個靜態(tài)值
    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 表示開區(qū)間 不包括 (begin,end) true 表示閉區(qū)間 包括 [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));
    還可以設(shè)置坡度,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));
    它的三個構(gòu)造函數(shù)
    FuzzyQuery(Term t);
    FuzzyQuery(Term t,float 0.5f); 相似度。0-1之間
    FuzzyQuery(Term t,float 0.5f,int prefixLength);前綴必須相同的長度

    本文轉(zhuǎn)自:http://job5156.xicp.net/?p=72



    ---------------------------------------------------------------------------------------------------------------------------------
    說人之短,乃護己之短。夸己之長,乃忌人之長。皆由存心不厚,識量太狹耳。能去此弊,可以進德,可以遠怨。
    http://m.tkk7.com/szhswl
    ------------------------------------------------------------------------------------------------------ ----------------- ---------
    posted on 2007-12-10 19:51 宋針還 閱讀(661) 評論(0)  編輯  收藏 所屬分類: 搜索引擎
    主站蜘蛛池模板: 亚洲国产精品无码第一区二区三区| 女人裸身j部免费视频无遮挡| 情侣视频精品免费的国产 | 又黄又大的激情视频在线观看免费视频社区在线 | 噼里啪啦电影在线观看免费高清| 亚洲欧美自偷自拍另类视| 久久伊人亚洲AV无码网站| 国产成人精品免费视| 天天综合亚洲色在线精品| 亚洲成a人片77777kkkk| 好吊妞在线成人免费| 久久国产精品成人免费| 亚洲欧美成人av在线观看| 日本亚洲欧洲免费天堂午夜看片女人员 | 中文字幕成人免费高清在线视频 | 亚洲视频在线免费观看| 国产精品无码一区二区三区免费| 18禁在线无遮挡免费观看网站| 亚洲熟女精品中文字幕| 亚洲VA中文字幕无码一二三区 | 无码人妻一区二区三区免费看 | 黄色毛片免费网站| 亚洲国产美女视频| 亚洲一区二区三区影院| 日韩激情无码免费毛片| 99久久国产免费中文无字幕| 午夜免费国产体验区免费的 | 日韩内射激情视频在线播放免费 | 99久久免费中文字幕精品| v片免费在线观看| 亚洲最大的成人网| 亚洲黄色在线电影| 亚洲色精品aⅴ一区区三区| 国产精品二区三区免费播放心| 16女性下面无遮挡免费| 国产一级a毛一级a看免费视频| 亚洲hairy多毛pics大全| 亚洲精品白色在线发布| 亚洲国产美国国产综合一区二区| 国产精品亚洲mnbav网站| 国产国产人免费人成免费视频 |