<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://m.tkk7.com/szhswl
    ------------------------------------------------------------------------------------------------------ ----------------- ---------
    posted on 2007-12-10 19:51 宋針還 閱讀(651) 評論(0)  編輯  收藏 所屬分類: 搜索引擎
    主站蜘蛛池模板: 四虎影视永久免费视频观看| 国产1024精品视频专区免费| 亚洲成av人片一区二区三区| 亚洲AV无码AV日韩AV网站| 成人免费视频小说| 亚洲中文字幕AV每天更新| 女人毛片a级大学毛片免费| 亚洲精品无码专区在线| 日本无卡码免费一区二区三区| 成人亚洲国产精品久久| 免费一级毛片在线播放不收费| 黄色一级免费网站| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 国产.亚洲.欧洲在线| 成人A级毛片免费观看AV网站| 2020天堂在线亚洲精品专区| 曰皮全部过程视频免费国产30分钟| 久久综合亚洲色hezyo| 亚洲国产精品一区二区第一页| 九九热久久免费视频| 亚洲国产精品VA在线看黑人 | 亚洲人成伊人成综合网久久| 四虎成人免费网站在线| 曰批全过程免费视频免费看| 亚洲人成伊人成综合网久久久| 中文字幕视频免费| 亚洲成A人片在线播放器| 免费人成视网站在线观看不卡| 国产一级一毛免费黄片| 亚洲明星合成图综合区在线| 日韩在线看片免费人成视频播放| 又硬又粗又长又爽免费看 | 2021在线永久免费视频| 亚洲欧美国产精品专区久久| 亚洲最大av无码网址| 日韩人妻无码精品久久免费一| 国内精品久久久久影院亚洲 | 亚洲精品久久久www| 51精品视频免费国产专区| 欧美色欧美亚洲另类二区| 亚洲热妇无码AV在线播放|