Authored by 胡古飞

Merge branch 'master' into test

@@ -29,7 +29,7 @@ public class SizeAggregation extends AbstractAggregation { @@ -29,7 +29,7 @@ public class SizeAggregation extends AbstractAggregation {
29 29
30 @Override 30 @Override
31 public AbstractAggregationBuilder getBuilder() { 31 public AbstractAggregationBuilder getBuilder() {
32 - return AggregationBuilders.terms(aggName()).field("sizeIds").size(100); 32 + return AggregationBuilders.terms(aggName()).field("sizeIds").size(300);
33 } 33 }
34 34
35 @Override 35 @Override
@@ -2,12 +2,15 @@ package com.yoho.search.service.service; @@ -2,12 +2,15 @@ package com.yoho.search.service.service;
2 2
3 import java.text.SimpleDateFormat; 3 import java.text.SimpleDateFormat;
4 import java.util.ArrayList; 4 import java.util.ArrayList;
  5 +import java.util.Collections;
  6 +import java.util.Comparator;
5 import java.util.HashMap; 7 import java.util.HashMap;
6 import java.util.HashSet; 8 import java.util.HashSet;
7 import java.util.List; 9 import java.util.List;
8 import java.util.Map; 10 import java.util.Map;
9 import java.util.Set; 11 import java.util.Set;
10 12
  13 +import org.apache.commons.collections.MapUtils;
11 import org.apache.commons.lang.StringUtils; 14 import org.apache.commons.lang.StringUtils;
12 import org.elasticsearch.action.get.GetResponse; 15 import org.elasticsearch.action.get.GetResponse;
13 import org.elasticsearch.action.get.MultiGetItemResponse; 16 import org.elasticsearch.action.get.MultiGetItemResponse;
@@ -208,12 +211,25 @@ public class SearchCommonService implements ApplicationEventPublisherAware { @@ -208,12 +211,25 @@ public class SearchCommonService implements ApplicationEventPublisherAware {
208 } 211 }
209 } 212 }
210 } else if (indexName.equals(ISearchConstants.INDEX_NAME_SIZE)) { 213 } else if (indexName.equals(ISearchConstants.INDEX_NAME_SIZE)) {
  214 + List<Map<String, Object>> sizeResults = new ArrayList<Map<String, Object>>();
211 for (MultiGetItemResponse item : response.getResponses()) { 215 for (MultiGetItemResponse item : response.getResponses()) {
212 if (item.getResponse().isExists()) { 216 if (item.getResponse().isExists()) {
213 - tmpMap = item.getResponse().getSource();  
214 - list.add(getSizeMap(tmpMap)); 217 + sizeResults.add(item.getResponse().getSource());
  218 + }
215 } 219 }
  220 + //按orderby排序
  221 + Collections.sort(sizeResults,new Comparator<Map<String, Object>>(){
  222 + @Override
  223 + public int compare(Map<String, Object> size1, Map<String, Object> size2) {
  224 + int orderBy1 = MapUtils.getIntValue(size1, "orderBy");
  225 + int orderBy2 = MapUtils.getIntValue(size2, "orderBy");
  226 + return (orderBy1 - orderBy2) * (-1);
216 } 227 }
  228 + });
  229 + for (Map<String, Object> sizeResult : sizeResults) {
  230 + list.add(getSizeMap(sizeResult));
  231 + }
  232 +
217 } else if (indexName.equals(ISearchConstants.INDEX_NAME_STYLE)) { 233 } else if (indexName.equals(ISearchConstants.INDEX_NAME_STYLE)) {
218 for (MultiGetItemResponse item : response.getResponses()) { 234 for (MultiGetItemResponse item : response.getResponses()) {
219 if (item.getResponse().isExists()) { 235 if (item.getResponse().isExists()) {