当前位置: 首页>>代码示例>>Java>>正文


Java TermsBuilder.order方法代码示例

本文整理汇总了Java中org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder.order方法的典型用法代码示例。如果您正苦于以下问题:Java TermsBuilder.order方法的具体用法?Java TermsBuilder.order怎么用?Java TermsBuilder.order使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder的用法示例。


在下文中一共展示了TermsBuilder.order方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: SimpleAggregationBuilder

import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; //导入方法依赖的package包/类
public SimpleAggregationBuilder(PB parentBuilder, TermsBuilder terms, String field, Integer size) {
	super(parentBuilder);
	if(size!=null){
		terms.size(size);
	}
	if(StringUtils.isNotBlank(field)){
		terms.field(field);
	}
	terms.order(Terms.Order.count(false));//COUNT_DESC
	this.aggsBuilder = terms;
}
 
开发者ID:wayshall,项目名称:onetwo,代码行数:12,代码来源:SimpleSearchQueryBuilder.java

示例2: convert

import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; //导入方法依赖的package包/类
@Override
public AggregationBuilder convert(QueryConverter queryConverter, Aggregation aggregation) {

    TermsBuilder result = terms(getName(aggregation));

    addField(aggregation, result);
    addScript(aggregation, result);

    Integer limit = aggregation.getInteger("limit");
    if (limit != null) {
        result.size(limit);
    }

    // todo - add ordering
    Terms.Order order = Terms.Order.count(false);
    Sort sort = Coerce.to(aggregation.get("order"), Sort.class, null);
    if (sort != null) {
        boolean asc = Sort.Direction.Ascending.equals(sort.getDirection());
        if (Sort.Type.Count.equals(sort.getType())) {
            order = Terms.Order.count(asc);
        } else if (Sort.Type.Lexical.equals(sort.getType())) {
            order = Terms.Order.term(asc);
        }
    }
    result.order(order);

    addSubAggs(queryConverter, aggregation, result);
    return result;
}
 
开发者ID:scaleset,项目名称:scaleset-search,代码行数:30,代码来源:TermAggregationConverter.java

示例3: populateBuffer

import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; //导入方法依赖的package包/类
/** run a query on ES to populate the internal buffer **/
protected void populateBuffer() {

    Date now = new Date();

    LOG.info("{} Populating buffer with nextFetchDate <= {}", logIdprefix,
            now);

    QueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(
            "nextFetchDate").lte(now);

    SearchRequestBuilder srb = client.prepareSearch(indexName)
            .setTypes(docType).setSearchType(SearchType.QUERY_THEN_FETCH)
            .setQuery(rangeQueryBuilder).setFrom(0).setSize(0)
            .setExplain(false);

    TermsBuilder aggregations = AggregationBuilders.terms("partition")
            .field(partitionField).size(maxBucketNum);

    TopHitsBuilder tophits = AggregationBuilders.topHits("docs")
            .setSize(maxURLsPerBucket).setExplain(false);
    // sort within a bucket
    if (StringUtils.isNotBlank(bucketSortField)) {
        FieldSortBuilder sorter = SortBuilders.fieldSort(bucketSortField)
                .order(SortOrder.ASC);
        tophits.addSort(sorter);
    }

    aggregations.subAggregation(tophits);

    // sort between buckets
    if (StringUtils.isNotBlank(totalSortField)) {
        MinBuilder minBuilder = AggregationBuilders.min("top_hit").field(
                totalSortField);
        aggregations.subAggregation(minBuilder);
        aggregations.order(Terms.Order.aggregation("top_hit", true));
    }

    srb.addAggregation(aggregations);

    // https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-preference.html
    // _shards:2,3
    if (shardID != -1) {
        srb.setPreference("_shards:" + shardID);
    }

    // dump query to log
    LOG.debug("{} ES query {}", logIdprefix, srb.toString());

    timeStartESQuery = System.currentTimeMillis();
    isInESQuery.set(true);
    srb.execute(this);
}
 
开发者ID:eorliac,项目名称:patent-crawler,代码行数:54,代码来源:AggregationSpout.java

示例4: explain

import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder; //导入方法依赖的package包/类
@Override
public SqlElasticSearchRequestBuilder explain() throws SqlParseException {
	this.request = client.prepareSearch();

	setIndicesAndTypes();

	setWhere(select.getWhere());
	AggregationBuilder<?> lastAgg = null;

	for (List<Field> groupBy : select.getGroupBys()) {
		if (!groupBy.isEmpty()) {
			Field field = groupBy.get(0);
			lastAgg = aggMaker.makeGroupAgg(field);

			if (lastAgg != null && lastAgg instanceof TermsBuilder) {
				((TermsBuilder) lastAgg).size(select.getRowCount());
			}

			request.addAggregation(lastAgg);

			for (int i = 1; i < groupBy.size(); i++) {
				field = groupBy.get(i);
				AggregationBuilder<?> subAgg = aggMaker.makeGroupAgg(field);
				if (subAgg instanceof TermsBuilder) {
					((TermsBuilder) subAgg).size(0);
				}

				lastAgg.subAggregation(subAgg);
				lastAgg = subAgg;
			}
		}
	}

	Map<String, KVValue> groupMap = aggMaker.getGroupMap();
	// add field
	if (select.getFields().size() > 0) {
		setFields(select.getFields());
		explanFields(request, select.getFields(), lastAgg);
	}

	// add order
	if (lastAgg != null && select.getOrderBys().size() > 0) {
		for (Order order : select.getOrderBys()) {
			KVValue temp = groupMap.get(order.getName());
			if (temp != null) {
				TermsBuilder termsBuilder = (TermsBuilder) temp.value;
				switch (temp.key) {
				case "COUNT":
					termsBuilder.order(Terms.Order.count(isASC(order)));
					break;
				case "KEY":
					termsBuilder.order(Terms.Order.term(isASC(order)));
					// add the sort to the request also so the results get sorted as well
					request.addSort(order.getName(), SortOrder.valueOf(order.getType()));
					break;
				case "FIELD":
					termsBuilder.order(Terms.Order.aggregation(order.getName(), isASC(order)));
					break;
				default:
					throw new SqlParseException(order.getName() + " can not to order");
				}
			} else {
				request.addSort(order.getName(), SortOrder.valueOf(order.getType()));
			}
		}
	}
	setLimit(select.getOffset(), select.getRowCount());

	request.setSearchType(SearchType.DEFAULT);
       SqlElasticSearchRequestBuilder sqlElasticRequestBuilder = new SqlElasticSearchRequestBuilder(request);
       return sqlElasticRequestBuilder;
}
 
开发者ID:selvakumarEsra,项目名称:es4sql,代码行数:73,代码来源:AggregationQueryAction.java


注:本文中的org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder.order方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。