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

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

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

    使用lucene對搜索結(jié)果排序

    lucene默認根據(jù)匹配度對搜索結(jié)果降序排,如果對某個域進行排序?
    通常分兩步:

     step1)建索引時
    doc.add(new Field("audittime", row.get("audittime").toString(),
                    Field.Store.NO, Field.Index.UN_TOKENIZED));

    關(guān)鍵點是你需要排序的字段建索引時應(yīng)該采用Field.Index.UN_TOKENIZED,至于需不需要Field.Store.NO看實際情況,反正不影響排序

    step2)搜索時
    public Hits search(SearchVO searchVO) throws IOException {
            ................

            Sort sort = this.buildSort(searchVO);

            Hits hits = searcher.search(query, sort);

            return hits;
    }

    private Sort buildSort(SearchVO searchVO) {

            if (searchVO.getOrderby() == null || searchVO.getOrderby().length() < 1) {
                return null;
            }

            Sort sort = new Sort(searchVO.getOrderby(),
                    (searchVO.getAscflag() == 1 ? false : true));

            return sort;

    }

     關(guān)鍵點是通過建立一個Sort實例然后傳給IndexSearcher 的另一個重載方法search(Query query,Sort sort);

    通過Sort你可以指定排序字段名,升序降序.

    如果你需要特指字段類型,你需要使用  new Sort(SortField field)
    或者你需要通過多字段排序,你需要使用  new Sort(SortField[] fields)
    我就不再贅述了

    題外話:
       
    使用lucene 排序是很簡單的,但如何發(fā)揮它的效果是一個值得思考的地方.
       
    如果你是實時的更新lucene索引我沒話說(這需要相當謹慎的設(shè)計).

    如果你定時更新索引,就會有些問題,比如你要排序的字段更新速度很快,你應(yīng)該如何顯示它? 因為你排序的數(shù)據(jù)(即建索引時的數(shù)據(jù))和當前的數(shù)據(jù)并不完全同步,這會給顯示帶來問題.如果你顯示建索引時的數(shù)據(jù),這樣排序本身沒問題,但客戶會很奇怪我的數(shù)據(jù)明明是6了怎么還顯示4.如果你顯示當前的數(shù)據(jù)就更奇怪了,客戶可能會奇怪我的數(shù)據(jù)是1000怎么排名第4,排名第一的才500?  如果你的數(shù)據(jù)更新緩慢,這樣做不會有什么問題.但更新很快的話就是災(zāi)難了.



    posted on 2008-04-01 10:22 魯勝迪 閱讀(7682) 評論(1)  編輯  收藏

    評論

    # re: 使用lucene對搜索結(jié)果排序 2011-09-24 14:12 shigangxing

    不錯  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2008年4月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    新聞分類

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲乱码日产一区三区| 亚洲一区二区三区播放在线| 亚洲日韩在线观看| 国内精品99亚洲免费高清| 国内精品99亚洲免费高清| 久久精品亚洲精品国产色婷| 亚洲精品福利在线观看| 亚洲男人天堂2022| 人人公开免费超级碰碰碰视频 | 亚洲区精品久久一区二区三区| 亚洲色丰满少妇高潮18p| 久久一区二区免费播放| 1000部禁片黄的免费看| 国产三级免费电影| 久久国产亚洲电影天堂| 国产午夜亚洲精品国产| 精精国产www视频在线观看免费| 人妻无码一区二区三区免费| 香蕉视频在线观看免费国产婷婷| 国产亚洲精品看片在线观看| 亚洲毛片一级带毛片基地| 精品国产日韩久久亚洲| 激情综合亚洲色婷婷五月APP| 成人免费网站视频www| 波多野结衣免费在线| 亚洲午夜福利在线观看| 亚洲国产AV无码一区二区三区| 国产精品白浆在线观看免费 | 四虎国产精品免费久久| 亚洲AV午夜福利精品一区二区| 国产亚洲午夜精品| 麻豆国产VA免费精品高清在线 | 大学生高清一级毛片免费| 97se亚洲综合在线| 日韩午夜理论免费TV影院| 在线a亚洲v天堂网2019无码| 黄色一级视频免费观看| 亚洲国产av无码精品| 国产精品99爱免费视频| 亚洲女初尝黑人巨高清| 可以免费观看的毛片|