<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 宋針還 閱讀(654) 評論(0)  編輯  收藏 所屬分類: 搜索引擎
    主站蜘蛛池模板: 日韩a毛片免费观看| 亚洲午夜无码久久| fc2免费人成为视频| 国产伦精品一区二区三区免费下载| 亚洲三级在线免费观看| 欧美最猛性xxxxx免费| 亚洲最大的成网4438| 亚洲一区二区三区免费视频| 久久亚洲精品无码AV红樱桃| 91精品导航在线网址免费| 亚洲精品欧洲精品| 无码一区二区三区AV免费| 亚洲第一第二第三第四第五第六| 国产成人综合亚洲| 亚洲精品无码专区2| 久久久久久毛片免费看| 亚洲毛片在线观看| AA免费观看的1000部电影| 亚洲Av永久无码精品一区二区 | 久久亚洲免费视频| 久久久久亚洲精品天堂| 美女视频黄的全免费视频| 亚洲精品乱码久久久久久V | 无人影院手机版在线观看免费| 亚洲最大福利视频| 亚洲国产综合无码一区二区二三区| 国产精品免费看久久久香蕉| 亚洲人成网址在线观看| 免费观看的a级毛片的网站| 四虎一区二区成人免费影院网址 | 亚洲剧情在线观看| 国产伦精品一区二区三区免费下载| 福利免费在线观看| 亚洲另类自拍丝袜第1页| 内射无码专区久久亚洲| 一级毛片aaaaaa免费看| 日韩国产欧美亚洲v片| 亚洲精品免费视频| 国产三级免费电影| 日本人的色道免费网站| 一级毛片视频免费|