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

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

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

    皮杜妮

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      887 Posts :: 3 Stories :: 7 Comments :: 0 Trackbacks
    lucene查詢結果需要先分組后排序, 看了相關文檔,lucene提供了分組 排序功能,但是比較消耗內容,實際情況是 我們一般只需要前面的1000條, 所以我自己實現了排序算法,盡量少占用內容。
    方法如下:


    // 分組統計方式
        /**
         *
         * @param topnumber  取分組后的前幾條數據
         * @return
         */
        public static List cachegroup(int topnumber) {
            try {
                int page = 30000;
                String filePath = "D://lucene/index2";
                File dirfile = new File(filePath);
                Directory dir = FSDirectory.open(dirfile);
                IndexReader reader = DirectoryReader.open(dir);
                IndexSearcher indexSearcher = new IndexSearcher(reader);
                String searchTerm = "aaa";
                boolean getScores = true;
                boolean getMaxScores = true;
                boolean fillFields = true;
                GroupingSearch groupingSearch = new GroupingSearch("author");
                groupingSearch.setGroupSort(Sort.RELEVANCE);
                groupingSearch.setFillSortFields(true);
                groupingSearch.setCachingInMB(40.0, true);
                groupingSearch.setAllGroups(true);
                TermQuery query = new TermQuery(new Term("content", searchTerm));
                TopDocs hits = indexSearcher.search(query, 100);
                int count = hits.totalHits;
                int mode = count % page;
                int times = count / page;
                if (mode != 0)
                    times = times + 1;
                List indexvalue = new LinkedList();
                for (int i = 0; i < times; i++) {
                    int groupoffset = i * page;
                    TopGroups<BytesRef> result = groupingSearch.search(
                            indexSearcher, query, groupoffset, page);
                    GroupDocs<BytesRef>[] gds = result.groups;
                    for (GroupDocs<BytesRef> gd : gds) {
                        indexvalue.add(new FieldSort(gd.totalHits, gd.groupValue
                                .utf8ToString()));
                    }
                    Comparator comp = Collections.reverseOrder();
                    Collections.sort(indexvalue, comp);
                    indexvalue = indexvalue.subList(0, topnumber);
                }
                return indexvalue;
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return null;
        }

        
        public static void  readList(List list)
        {
            Iterator it=list.iterator();
            while(it.hasNext())
            {
                FieldSort fieldsort=(FieldSort)it.next();
                System.out.println(fieldsort.getFieldvalue()+"/"+fieldsort.getFieldname());
            }
        }





    package speed;

    import java.util.Comparator;



    public class FieldSort implements Comparable<FieldSort>{

        private int    fieldvalue;
        private String fieldname;
        public FieldSort() {
            super();
        }
        public FieldSort(int fieldvalue,String fieldname) {
            super();
            this.setFieldvalue(fieldvalue);
            this.setFieldname(fieldname);
        }

        public int getFieldvalue() {
            return fieldvalue;
        }
        public void setFieldvalue(int fieldvalue) {
            this.fieldvalue = fieldvalue;
        }
        public String getFieldname() {
            return fieldname;
        }
        public void setFieldname(String fieldname) {
            this.fieldname = fieldname;
        }
        @Override
        public String toString(){
            return fieldname+"/"+fieldvalue;
        }
        public int compareTo(FieldSort t){
            if(t==null)return 0;
            else{
                return this.fieldvalue-t.fieldvalue;
            }
        }

        

    }
    posted on 2013-09-24 16:34 豬眼睛 閱讀(636) 評論(0)  編輯  收藏 所屬分類: 搜索引擎
    主站蜘蛛池模板: 亚洲精品无码中文久久字幕| 亚洲欧洲日韩国产| 亚洲日本成本人观看| 国产人在线成免费视频| 亚洲成aⅴ人在线观看| 国产91免费在线观看| 亚洲免费观看网站| 国产乱子精品免费视观看片| 亚洲日韩乱码中文无码蜜桃| 一个人看的www在线观看免费| 亚洲激情视频图片| 日本黄页网站免费| 又粗又长又爽又长黄免费视频 | 午夜影院免费观看| 亚洲精品国产专区91在线| 男女做羞羞的事视频免费观看无遮挡| 亚洲一卡2卡3卡4卡国产网站| 日本高清色本免费现在观看| 美女视频黄a视频全免费网站一区| 4338×亚洲全国最大色成网站| 免费看黄的成人APP| 亚洲成人黄色网址| 精品国产免费一区二区| 在线播放国产不卡免费视频| 国产亚洲美女精品久久久久狼 | 亚洲国产成人AV网站| 精品亚洲视频在线观看 | 特级一级毛片免费看| 亚洲乱码中文字幕久久孕妇黑人| 99re视频精品全部免费| 亚洲日韩AV一区二区三区四区 | 久久久久久毛片免费看| 亚洲毛片无码专区亚洲乱| 麻豆国产VA免费精品高清在线| a级毛片免费高清视频| 亚洲精品自拍视频| www.亚洲精品.com| 四虎最新永久免费视频| 羞羞漫画小舞被黄漫免费| 婷婷亚洲久悠悠色悠在线播放| 成人免费网站在线观看|