类org.elasticsearch.search.sort.SortBuilder源码实例Demo

下面列出了怎么用org.elasticsearch.search.sort.SortBuilder的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: elasticsearch-sql   文件: QueryOrderByParser.java
@Override
public void parse(ElasticDslContext dslContext) {
    if(dslContext.getSqlContext().selectOperation()!=null&&dslContext.getSqlContext().selectOperation().groupByClause()==null){
        if(dslContext.getSqlContext().selectOperation().orderClause()!=null){
            ElasticsearchParser.OrderClauseContext orderClauseContext=dslContext.getSqlContext().selectOperation().orderClause();
            for(ElasticsearchParser.OrderContext orderContext:orderClauseContext.order()){
                ElasticsearchParser.NameClauseContext nameContext = orderContext.nameClause();
                if(nameContext instanceof ElasticsearchParser.FieldNameContext){
                    ElasticsearchParser.FieldNameContext fieldNameContext=(ElasticsearchParser.FieldNameContext)nameContext;
                    String field = fieldNameContext.field.getText();
                    if(fieldNameContext.highlighter!=null){
                        dslContext.getParseResult().getHighlighter().add(field);
                    }
                    SortOrder sortOrder;
                    if(orderContext.ASC()!=null) {
                        sortOrder=SortOrder.ASC;
                    }else{
                        sortOrder=SortOrder.DESC;
                    }
                    SortBuilder sortBuilder = SortBuilders.fieldSort(field).sortMode(SortMode.AVG).order(sortOrder);
                    dslContext.getParseResult().getOrderBy().add(sortBuilder);
                }
            }
        }
    }
}
 
源代码2 项目: albert   文件: BaseSearchService.java
protected SortBuilder addSort(SearchParam param){
		Integer sort = param.getSort();
		
//		if(null==sort){
//			return SortBuilders.fieldSort("lastRefresh").order(SortOrder.DESC);
//		}else if(Constants.Sort.nearest == sort){
//			return SortBuilders.geoDistanceSort("geoPoint").point(param.getLat(), param.getLon()).order(SortOrder.ASC);
//		
//		} else if(Constants.Sort.pageView == sort){
//			return SortBuilders.fieldSort("reviewNum").order(SortOrder.DESC);
//		
//		} else if(Constants.Sort.score == sort){
//			return SortBuilders.fieldSort("avgScore").order(SortOrder.DESC);
//		
//		} else if(Constants.Sort.priceAsc == sort){
//			return SortBuilders.fieldSort("price").order(SortOrder.ASC);
//		
//		} else if(Constants.Sort.priceDesc == sort){
//			return SortBuilders.fieldSort("price").order(SortOrder.DESC);
//		
//		}
		
		return SortBuilders.fieldSort("addTime").order(SortOrder.DESC);
	}
 
源代码3 项目: uavstack   文件: InvokeChainQueryHandler.java
/**
 * 
 * @param data
 * @param queryBuilder
 * @param postFilter
 */
@SuppressWarnings("rawtypes")
private void queryToList(UAVHttpMessage data, QueryBuilder queryBuilder, QueryBuilder postFilter,
        SortBuilder[] sorts) {

    SearchResponse sr = query(data, queryBuilder, postFilter, sorts);

    SearchHits shits = sr.getHits();

    List<Map<String, Object>> records = new ArrayList<Map<String, Object>>();

    for (SearchHit sh : shits) {
        Map<String, Object> record = sh.getSourceAsMap();

        if (record == null) {
            continue;
        }

        records.add(record);
    }

    data.putResponse("rs", JSONHelper.toString(records));
    // 返回总的条数
    data.putResponse("count", shits.getTotalHits() + "");
}
 
源代码4 项目: uavstack   文件: SlowOperQueryHandler.java
@SuppressWarnings({ "rawtypes" })
private SortBuilder[] buildSort(UAVHttpMessage data) {

    SortBuilder[] sorts = null;

    String sort = data.getRequest("sort");

    if (sort != null) {
        String[] sortFieldStrs = sort.split(",");
        List<SortBuilder> ls = new ArrayList<SortBuilder>();
        for (String sortFieldStr : sortFieldStrs) {
            String[] sortExp = sortFieldStr.split("=");
            SortBuilder stimeSort = new FieldSortBuilder(sortExp[0]);
            stimeSort.order(SortOrder.fromString(sortExp[1]));
            ls.add(stimeSort);
        }
        sorts = new SortBuilder[ls.size()];
        sorts = ls.toArray(sorts);
    }
    else {
        return null;
    }
    return sorts;
}
 
源代码5 项目: es-service-parent   文件: EsSort.java
/**
 * 
 * @param sort_fileds
 * @return
 */
public static List<SortBuilder> sortAdapter(List<String> sort_fileds) {
    List<SortBuilder> sortBuilders = new ArrayList<SortBuilder>();
    for (String sort : sort_fileds) {
        String[] items = StringUtils.split(sort, " ");
        if (items.length > 2 || items.length < 2) {
            throw new RuntimeException("排序参数格式不正确,必须为:filed desc|asc,多个filed以逗号分隔!");
        }
        String[] fileds = items[0].split(",");
        for (String filed : fileds) {
            SortBuilder sortb = null;
            if (items[0].equalsIgnoreCase("desc")) {
                sortb = SortBuilders.fieldSort(filed).order(SortOrder.DESC);
            } else {
                sortb = SortBuilders.fieldSort(filed).order(SortOrder.ASC);
            }
            sortBuilders.add(sortb);
        }

    }
    return sortBuilders;
}
 
源代码6 项目: nexus-public   文件: SearchServiceImpl.java
@Override
public SearchResponse search(final QueryBuilder query,
                             @Nullable final List<SortBuilder> sort,
                             final int from,
                             final int size,
                             @Nullable final Integer seconds)
{
  RepositoryQueryBuilder repoQuery = repositoryQuery(query);

  if (sort != null) {
    repoQuery = repoQuery.sortBy(sort);
  }

  if (seconds != null) {
    repoQuery = repoQuery.timeout(ofSeconds(seconds));
  }

  return searchQueryService.search(repoQuery, from, size);
}
 
源代码7 项目: nexus-public   文件: SearchUtils.java
public List<SortBuilder> getSortBuilders(final String sort, final String direction, boolean allowAnySort) {
  if (sort == null) {
    return emptyList();
  }

  switch (sort) {
    case GROUP:
      return handleGroupSort(direction);
    case NAME:
      return handleNameSort(direction);
    case VERSION:
      return handleVersionSort(direction);
    case "repository":
    case "repositoryName":
      return handleRepositoryNameSort(direction);
    default:
      return handleOtherSort(sort, direction, allowAnySort);
  }
}
 
源代码8 项目: syncope   文件: ElasticsearchAnySearchDAO.java
private SearchRequest searchRequest(
        final Set<String> adminRealms,
        final SearchCond cond,
        final AnyTypeKind kind,
        final int from,
        final int size,
        final List<SortBuilder<?>> sortBuilders) {

    Pair<DisMaxQueryBuilder, Set<String>> filter = adminRealmsFilter(adminRealms);
    SearchSourceBuilder sourceBuilder = new SearchSourceBuilder().
            query(SyncopeConstants.FULL_ADMIN_REALMS.equals(adminRealms)
                    ? getQueryBuilder(cond, kind)
                    : QueryBuilders.boolQuery().
                            must(filter.getLeft()).
                            must(getQueryBuilder(buildEffectiveCond(cond, filter.getRight()), kind))).
            from(from).
            size(size);
    sortBuilders.forEach(sourceBuilder::sort);

    return new SearchRequest(ElasticsearchUtils.getContextDomainName(AuthContextUtils.getDomain(), kind)).
            searchType(SearchType.QUERY_THEN_FETCH).
            source(sourceBuilder);
}
 
源代码9 项目: elasticsearch-helper   文件: BaseClient.java
public Long mostRecentDocument(String index) {
    if (client() == null) {
        return null;
    }
    SearchRequestBuilder searchRequestBuilder = new SearchRequestBuilder(client(), SearchAction.INSTANCE);
    SortBuilder sort = SortBuilders.fieldSort("_timestamp").order(SortOrder.DESC);
    SearchResponse searchResponse = searchRequestBuilder.setIndices(index).addField("_timestamp").setSize(1).addSort(sort).execute().actionGet();
    if (searchResponse.getHits().getHits().length == 1) {
        SearchHit hit = searchResponse.getHits().getHits()[0];
        if (hit.getFields().get("_timestamp") != null) {
            return hit.getFields().get("_timestamp").getValue();
        } else {
            return 0L;
        }
    }
    return null;
}
 
源代码10 项目: elasticsearch-sql   文件: ElasticSqlParseResult.java
private SearchRequest toRequest() {
    SearchRequest searchRequest = new SearchRequest();
    List<String> indexList = indices.parallelStream().map(StringManager::removeStringSymbol).collect(Collectors.toList());
    if (CollectionUtils.isNotEmpty(indexList)) {
        searchRequest.indices(indexList.toArray(new String[0]));
    } else {
        throw new ElasticSql2DslException("[syntax error] indices name must be set");
    }
    //这里不会修改from的值
    searchSourceBuilder.from(Math.max(from, 0));
    searchSourceBuilder.size(Math.max(size, 0));
    searchSourceBuilder.trackTotalHits(this.trackTotalHits);
    if (CollectionUtils.isNotEmpty(highlighter)) {
        HighlightBuilder highlightBuilder = HighlightBuilders.highlighter(highlighter);
        searchSourceBuilder.highlighter(highlightBuilder);
    }
    searchSourceBuilder.query(whereCondition);
    if (StringUtils.isNotBlank(distinctName)) {
        searchSourceBuilder.collapse(new CollapseBuilder(distinctName));
    }
    if (CollectionUtils.isNotEmpty(orderBy)) {
        for (SortBuilder sortBuilder : orderBy) {
            searchSourceBuilder.sort(sortBuilder);
        }
    }
    searchSourceBuilder.fetchSource(includeFields.toArray(new String[0]), excludeFields.toArray(new String[0]));
    if (CollectionUtils.isNotEmpty(routingBy)) {
        searchRequest.routing(routingBy.toArray(new String[0]));
    }
    if (CollectionUtils.isNotEmpty(groupBy)) {
        for (AggregationBuilder aggItem : groupBy) {
            searchSourceBuilder.aggregation(aggItem);
        }
    }
    return searchRequest.source(searchSourceBuilder);
}
 
源代码11 项目: vind   文件: ElasticQueryBuilder.java
private static SortBuilder buildSort(Sort sort, FulltextSearch search, DocumentFactory factory, String searchContext) {
   switch (sort.getType()) {
        case "SimpleSort":
            final FieldDescriptor<?> simpleSortField = factory.getField(((Sort.SimpleSort) sort).getField());
            final String sortFieldName = Optional.ofNullable(simpleSortField)
                    .filter(FieldDescriptor::isSort)
                    .map(descriptor -> FieldUtil.getFieldName(descriptor, searchContext))
                    .orElse(((Sort.SimpleSort) sort).getField());
            return SortBuilders
                    .fieldSort(sortFieldName)
                    .order(SortOrder.valueOf(sort.getDirection().name().toUpperCase()));
        case "DescriptorSort":
            final String descriptorFieldName = Optional.ofNullable(FieldUtil.getFieldName(((Sort.DescriptorSort) sort).getDescriptor(), searchContext))
                    .orElseThrow(() ->
                            new RuntimeException("The field '" + ((Sort.DescriptorSort) sort).getDescriptor().getName() + "' is not set as sortable"));
            return SortBuilders
                    .fieldSort(descriptorFieldName)
                    .order(SortOrder.valueOf(sort.getDirection().name().toUpperCase()));
       case "DistanceSort":
           Optional.ofNullable(search.getGeoDistance())
                   .orElseThrow(() -> new SearchServerException("Sorting by distance requires a geodistance set"));
           final String distanceFieldName = FieldUtil.getFieldName(search.getGeoDistance().getField(), searchContext);
           return SortBuilders
                   .geoDistanceSort(distanceFieldName,
                           search.getGeoDistance().getLocation().getLat(),
                           search.getGeoDistance().getLocation().getLng())
                   .order(SortOrder.valueOf(sort.getDirection().name().toUpperCase()));
       case "ScoredDate":
           throw new NotImplementedException();
       default:
           throw  new SearchServerException(String
                    .format("Unable to parse Vind sort '%s' to ElasticSearch sorting: sort type not supported.",
                            sort.getType()));
   }
}
 
源代码12 项目: Elasticsearch   文件: PercolateSourceBuilder.java
/**
 * Adds a sort builder. Only sorting by score desc is supported.
 *
 * By default the matching percolator queries are returned in an undefined order.
 */
public PercolateSourceBuilder addSort(SortBuilder sort) {
    if (sorts == null) {
        sorts = new ArrayList<>();
    }
    sorts.add(sort);
    return this;
}
 
源代码13 项目: Elasticsearch   文件: PercolateSourceBuilder.java
@Override
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
    builder.startObject();
    if (docBuilder != null) {
        docBuilder.toXContent(builder, params);
    }
    if (queryBuilder != null) {
        builder.field("query");
        queryBuilder.toXContent(builder, params);
    }
    if (size != null) {
        builder.field("size", size);
    }
    if (sorts != null) {
        builder.startArray("sort");
        for (SortBuilder sort : sorts) {
            builder.startObject();
            sort.toXContent(builder, params);
            builder.endObject();
        }
        builder.endArray();
    }
    if (trackScores != null) {
        builder.field("track_scores", trackScores);
    }
    if (highlightBuilder != null) {
        highlightBuilder.toXContent(builder, params);
    }
    if (aggregations != null) {
        builder.field("aggregations");
        builder.startObject();
        for (AbstractAggregationBuilder aggregation : aggregations) {
            aggregation.toXContent(builder, params);
        }
        builder.endObject();
    }
    builder.endObject();
    return builder;
}
 
源代码14 项目: uavstack   文件: SlowOperQueryHandler.java
/**
 * 根据协议的报文体内容查询
 * 
 * @param data
 */
@SuppressWarnings("rawtypes")
private void queryByBodyContent(UAVHttpMessage data) {

    String appid = data.getRequest("appid");
    if (appid == null) {
        data.putResponse("rs", "ERR");
        data.putResponse("msg", "appid is required");
        return;
    }

    String[] types = buildTypes(data);
    String content = data.getRequest("content");
    if (types.length == 0) {
        types = typeMap.values().toArray(types);
    }
    BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
    queryBuilder.must(QueryBuilders.matchQuery("appid", appid));
    for (String type : types) {
        for (String field : typeBodyMap.get(type)) {
            queryBuilder.should(QueryBuilders.matchQuery(field, content));
        }
    }
    SortBuilder[] sorts = buildSort(data);

    queryToList(data, queryBuilder, null, sorts);
}
 
源代码15 项目: uavstack   文件: SlowOperQueryHandler.java
/**
 * 
 * @param data
 * @param queryBuilder
 * @param postFilter
 */
@SuppressWarnings("rawtypes")
private void queryToList(UAVHttpMessage data, QueryBuilder queryBuilder, QueryBuilder postFilter,
        SortBuilder[] sorts) {

    SearchResponse sr = query(data, queryBuilder, postFilter, sorts);
    if (sr == null) {
        return;
    }

    SearchHits shits = sr.getHits();

    List<Map<String, Object>> records = new ArrayList<Map<String, Object>>();

    for (SearchHit sh : shits) {
        Map<String, Object> record = sh.getSourceAsMap();

        if (record == null) {
            continue;
        }

        records.add(record);
    }

    data.putResponse("rs", JSONHelper.toString(records));
    // 返回总的条数
    data.putResponse("count", shits.getTotalHits() + "");
}
 
源代码16 项目: uavstack   文件: NewLogQueryHandler.java
@SuppressWarnings("rawtypes")
private void queryToList(UAVHttpMessage data, QueryBuilder queryBuilder, QueryBuilder postFilter,
        SortBuilder[] sorts) {

    SearchResponse sr = query(data, queryBuilder, postFilter, sorts);

    SearchHits shits = sr.getHits();

    List<Map<String, Object>> records = new ArrayList<Map<String, Object>>();

    for (SearchHit sh : shits) {
        Map<String, Object> record = sh.getSourceAsMap();

        if (record == null) {
            continue;
        }

        records.add(record);
    }

    // 如果只存在eline则需要把结果逆序,保证其原始顺序
    long startLine = DataConvertHelper.toLong(data.getRequest("sline"), -1);
    long endLine = DataConvertHelper.toLong(data.getRequest("eline"), -1);
    if (startLine == -1 && endLine > -1) {
        Collections.reverse(records);
    }

    data.putResponse("rs", JSONHelper.toString(records));
    // 返回总条数
    data.putResponse("count", shits.getTotalHits() + "");
}
 
源代码17 项目: uavstack   文件: ThreadAnalysisQueryHandler.java
@SuppressWarnings("rawtypes")
private SearchResponse query(UAVHttpMessage data, QueryBuilder queryBuilder, QueryBuilder postFilter,
        List<SortBuilder> sorts) {

    String date = data.getRequest("indexdate");
    String currentIndex;
    if (date != null) {
        // 指定index
        currentIndex = this.indexMgr.getIndexByDate(date);
    }
    else {
        // current index
        currentIndex = this.indexMgr.getCurrentIndex();
    }

    SearchRequestBuilder srb = client.getClient().prepareSearch(currentIndex)
            .setTypes(ThreadAnalysisIndexMgr.JTA_TABLE).setSearchType(SearchType.DFS_QUERY_THEN_FETCH);

    int from = DataConvertHelper.toInt(data.getRequest("from"), -1);
    int size = DataConvertHelper.toInt(data.getRequest("size"), -1);

    if (from != -1 && size != -1) {
        srb = srb.setFrom(from).setSize(size);
    }

    srb.setQuery(queryBuilder);

    if (postFilter != null) {
        srb.setPostFilter(postFilter);
    }

    for (SortBuilder sb : sorts) {
        srb.addSort(sb);
    }

    SearchResponse sr = srb.get(TimeValue.timeValueMillis(timeout));

    return sr;
}
 
源代码18 项目: es-service-parent   文件: EsSort.java
/**
 * 
 * @param srb
 * @param sort_fileds
 * @return
 */
public static void sortAdapter(SearchRequestBuilder srb, List<String> sort_fileds) {
    // 处理排序
    for (SortBuilder s : sortAdapter(sort_fileds)) {
        srb.addSort(s);
    }
}
 
源代码19 项目: nexus-public   文件: SearchServiceImpl.java
@Override
public SearchResponse searchUnrestrictedInRepos(final QueryBuilder query,
                                                @Nullable final List<SortBuilder> sort,
                                                final int from,
                                                final int size,
                                                final Collection<String> repoNames)
{
  RepositoryQueryBuilder repoQuery = repositoryQuery(query).inRepositories(repoNames);

  if (sort != null) {
    repoQuery = repoQuery.sortBy(sort);
  }

  return searchQueryService.search(repoQuery.unrestricted(), from, size);
}
 
源代码20 项目: nexus-public   文件: SearchServiceImpl.java
@Override
public SearchResponse searchUnrestricted(final QueryBuilder query,
                                         @Nullable final List<SortBuilder> sort,
                                         final int from,
                                         final int size)
{
  RepositoryQueryBuilder repoQuery = repositoryQuery(query);

  if (sort != null) {
    repoQuery = repoQuery.sortBy(sort);
  }

  return searchQueryService.search(repoQuery.unrestricted(), from, size);
}
 
源代码21 项目: fess   文件: FessProp.java
@SuppressWarnings("rawtypes")
default OptionalThing<SortBuilder[]> getQueryCollapseInnerHitsSortBuilders() {
    @SuppressWarnings("unchecked")
    OptionalThing<SortBuilder[]> ot = (OptionalThing<SortBuilder[]>) propMap.get(QUERY_COLLAPSE_INNER_HITS_SORTS);
    if (ot == null) {
        final String sorts = getQueryCollapseInnerHitsSorts();
        if (StringUtil.isBlank(sorts)) {
            ot = OptionalThing.empty();
        } else {
            final SortBuilder[] sortBuilders =
                    split(sorts, ",").get(
                            stream -> stream
                                    .filter(StringUtil::isNotBlank)
                                    .map(s -> {
                                        final String[] values = s.split(":");
                                        if (values.length > 1) {
                                            return SortBuilders.fieldSort(values[0]).order(
                                                    values[0].equalsIgnoreCase("desc") ? SortOrder.DESC : SortOrder.ASC);
                                        } else {
                                            return SortBuilders.fieldSort(values[0]).order(SortOrder.ASC);
                                        }
                                    }).toArray(n -> new SortBuilder[n]));
            ot = OptionalThing.of(sortBuilders);
        }
        propMap.put(QUERY_COLLAPSE_INNER_HITS_SORTS, ot);
    }
    return ot;
}
 
源代码22 项目: nexus-public   文件: SearchQueryServiceImpl.java
private SearchResponse executeSearch(final RepositoryQueryBuilder repoQuery,
                                     final String[] searchableIndexes,
                                     final int from, final int size,
                                     @Nullable final QueryBuilder postFilter)
{
  SearchRequestBuilder searchRequestBuilder = client.get().prepareSearch(searchableIndexes)
      .setTypes(TYPE)
      .setQuery(repoQuery)
      .setFrom(from)
      .setSize(size)
      .setProfile(profile);

  if (repoQuery.sort != null) {
    for (SortBuilder entry : repoQuery.sort) {
      searchRequestBuilder.addSort(entry);
    }
  }

  if (postFilter != null) {
    searchRequestBuilder.setPostFilter(postFilter);
  }

  if (repoQuery.timeout != null) {
    searchRequestBuilder.setTimeout(repoQuery.timeout.getSeconds() + "s");
  }

  SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();

  if (profile) {
    logProfileResults(searchResponse);
  }

  return searchResponse;
}
 
源代码23 项目: nexus-public   文件: SearchQueryServiceImpl.java
private SearchResponse executeSearch(final RepositoryQueryBuilder repoQuery,
                                     final String[] searchableIndexes,
                                     final List<AggregationBuilder> aggregations,
                                     @Nullable final QueryBuilder postFilter)
{
  SearchRequestBuilder searchRequestBuilder = client.get().prepareSearch(searchableIndexes)
      .setTypes(TYPE)
      .setQuery(repoQuery)
      .setFrom(0)
      .setSize(0)
      .setProfile(profile)
      .setTrackScores(true);

  for (AggregationBuilder aggregation : aggregations) {
    searchRequestBuilder.addAggregation(aggregation);
  }

  if (repoQuery.sort != null) {
    for (SortBuilder entry : repoQuery.sort) {
      searchRequestBuilder.addSort(entry);
    }
  }

  if (postFilter != null) {
    searchRequestBuilder.setPostFilter(postFilter);
  }

  if (repoQuery.timeout != null) {
    searchRequestBuilder.setTimeout(repoQuery.timeout.getSeconds() + "s");
  }

  SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();

  if (profile) {
    logProfileResults(searchResponse);
  }

  return searchResponse;
}
 
源代码24 项目: nexus-public   文件: SearchUtilsTest.java
@Test
public void testGetSortBuilders_byGroup() throws Exception {
  List<SortBuilder> sortBuilders = underTest.getSortBuilders("group", "asc");
  assertThat(sortBuilders.size(), is(3));
  assertSearchBuilder(sortBuilders.get(0), "group.case_insensitive", "asc");
  assertSearchBuilder(sortBuilders.get(1), "name.case_insensitive", "asc");
  assertSearchBuilder(sortBuilders.get(2), "version", "asc");
}
 
源代码25 项目: nexus-public   文件: SearchUtilsTest.java
@Test
public void testGetSortBuilders_byGroupDescending() throws Exception{
  List<SortBuilder> sortBuilders = underTest.getSortBuilders("group", "desc");
  assertThat(sortBuilders.size(), is(3));
  assertSearchBuilder(sortBuilders.get(0), "group.case_insensitive", "desc");
  assertSearchBuilder(sortBuilders.get(1), "name.case_insensitive", "asc");
  assertSearchBuilder(sortBuilders.get(2), "version", "asc");
}
 
源代码26 项目: nexus-public   文件: SearchUtilsTest.java
@Test
public void testGetSortBuilders_byGroupDefaultSort() throws Exception {
  List<SortBuilder> sortBuilders = underTest.getSortBuilders("group", null);
  assertThat(sortBuilders.size(), is(3));
  assertSearchBuilder(sortBuilders.get(0), "group.case_insensitive", "asc");
  assertSearchBuilder(sortBuilders.get(1), "name.case_insensitive", "asc");
  assertSearchBuilder(sortBuilders.get(2), "version", "asc");
}
 
源代码27 项目: nexus-public   文件: SearchUtilsTest.java
@Test
public void testGetSortBuilders_byNameDescending() throws Exception{
  List<SortBuilder> sortBuilders = underTest.getSortBuilders("name", "desc");
  assertThat(sortBuilders.size(), is(3));
  assertSearchBuilder(sortBuilders.get(0), "name.case_insensitive", "desc");
  assertSearchBuilder(sortBuilders.get(1), "version", "asc");
  assertSearchBuilder(sortBuilders.get(2), "group.case_insensitive", "asc");
}
 
源代码28 项目: fess   文件: QueryHelper.java
public void addDefaultSort(final String fieldName, final String order) {
    final List<SortBuilder<?>> list = new ArrayList<>();
    if (defaultSortBuilders != null) {
        stream(defaultSortBuilders).of(stream -> stream.forEach(builder -> list.add(builder)));
    }
    list.add(createFieldSortBuilder(fieldName, SortOrder.DESC.toString().equalsIgnoreCase(order) ? SortOrder.DESC : SortOrder.ASC));
    defaultSortBuilders = list.toArray(new SortBuilder[list.size()]);
}
 
源代码29 项目: nexus-public   文件: SearchUtilsTest.java
private void assertSearchBuilder(SortBuilder sortBuilder, String field, String order) throws Exception {
  //see https://github.com/elastic/elasticsearch/issues/20853 as to why i can't do something simple like
  //assertThat(sortBuilders.get(0).toString(), is("somejson"));
  XContentBuilder xContentBuilder = mock(XContentBuilder.class);
  sortBuilder.toXContent(xContentBuilder, ToXContent.EMPTY_PARAMS);
  verify(xContentBuilder).startObject(field);
  verify(xContentBuilder).field("order", order);
  verify(xContentBuilder).endObject();
  verifyNoMoreInteractions(xContentBuilder);
}
 
源代码30 项目: onetwo   文件: SimpleSearchQueryBuilder.java
public SimpleSearchQueryBuilder withScriptSort(String script, SortOrder order){
	if(StringUtils.isBlank(script))
		return this;
	Script sortScript = new Script(script);
	SortBuilder sortBuilder = SortBuilders.scriptSort(sortScript, "number");
	sortBuilder.order(order);
	this.searchQueryBuilder.withSort(sortBuilder);
	return this;
}
 
 类所在包
 类方法
 同包方法