private static void addMetricSort(ProjectMeasuresQuery query, SearchRequestBuilder requestBuilder, String sort) { requestBuilder.addSort( new FieldSortBuilder(FIELD_MEASURES_VALUE) .setNestedPath(FIELD_MEASURES) .setNestedFilter(termQuery(FIELD_MEASURES_KEY, sort)) .order(query.isAsc() ? ASC : DESC)); }
order = SortOrder.valueOf(sortOption.substring(index + 1)); searchSourceBuilder.sort(new FieldSortBuilder(field).order(order));
for (int i = 0; i < orders.size(); i++) { IndexQuery.OrderEntry orderEntry = orders.get(i); FieldSortBuilder fsb = new FieldSortBuilder(orders.get(i).getKey()) .order(orderEntry.getOrder() == Order.ASC ? SortOrder.ASC : SortOrder.DESC); if (useDeprecatedIgnoreUnmapped) {
searchSourceBuilder.sort(new FieldSortBuilder("createdTime").order(SortOrder.ASC));
/** * Constructs a new field based sort. * * @param field The field name. */ public static FieldSortBuilder fieldSort(String field) { return new FieldSortBuilder(field); }
@Override public List<Message> getMessages(String queue) { try { Expression expression = Expression.fromString("queue='" + queue + "'"); QueryBuilder queryBuilder = expression.getFilterBuilder(); BoolQueryBuilder filterQuery = QueryBuilders.boolQuery().must(queryBuilder); QueryStringQueryBuilder stringQuery = QueryBuilders.queryStringQuery("*"); BoolQueryBuilder query = QueryBuilders.boolQuery().must(stringQuery).must(filterQuery); // Create the searchObjectIdsViaExpression source SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(query); searchSourceBuilder.sort(new FieldSortBuilder("created").order(SortOrder.ASC)); // Generate the actual request to send to ES. SearchRequest searchRequest = new SearchRequest(logIndexPrefix + "*"); searchRequest.types(MSG_DOC_TYPE); searchRequest.source(searchSourceBuilder); SearchResponse response = elasticSearchClient.search(searchRequest); return mapGetMessagesResponse(response); } catch (Exception e) { logger.error("Failed to get messages for queue: {}", queue, e); throw new ApplicationException(ApplicationException.Code.BACKEND_ERROR, e.getMessage(), e); } }
@Override public List<EventExecution> getEventExecutions(String event) { try { Expression expression = Expression.fromString("event='" + event + "'"); QueryBuilder queryBuilder = expression.getFilterBuilder(); BoolQueryBuilder filterQuery = QueryBuilders.boolQuery().must(queryBuilder); QueryStringQueryBuilder stringQuery = QueryBuilders.queryStringQuery("*"); BoolQueryBuilder query = QueryBuilders.boolQuery().must(stringQuery).must(filterQuery); // Create the searchObjectIdsViaExpression source SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(query); searchSourceBuilder.sort(new FieldSortBuilder("created").order(SortOrder.ASC)); // Generate the actual request to send to ES. SearchRequest searchRequest = new SearchRequest(logIndexPrefix + "*"); searchRequest.types(EVENT_DOC_TYPE); searchRequest.source(searchSourceBuilder); SearchResponse response = elasticSearchClient.search(searchRequest); return mapEventExecutionsResponse(response); } catch (Exception e) { logger.error("Failed to get executions for event: {}", event, e); throw new ApplicationException(ApplicationException.Code.BACKEND_ERROR, e.getMessage(), e); } }
private static TopHitsAggregationBuilder createSubAggregation(SuggestionQuery query) { return AggregationBuilders.topHits(DOCS_AGGREGATION_NAME) .highlighter(new HighlightBuilder() .encoder("html") .preTags("<mark>") .postTags("</mark>") .field(createHighlighterField())) .from(query.getSkip()) .size(query.getLimit()) .sort(new ScoreSortBuilder()) .sort(new FieldSortBuilder(ComponentIndexDefinition.FIELD_NAME)) .fetchSource(false); }
order = SortOrder.valueOf(sortOption.substring(index + 1)); searchSourceBuilder.sort(new FieldSortBuilder(field).order(order));
private static SortBuilder<?> fieldOrScoreSort(String fieldName) { if (fieldName.equals(ScoreSortBuilder.NAME)) { return new ScoreSortBuilder(); } else { return new FieldSortBuilder(fieldName); } }
/** * Creates a new {@link FieldSortBuilder} from the query held by the {@link XContentParser} in * {@link org.elasticsearch.common.xcontent.XContent} format. * * @param parser the input parser. The state on the parser contained in this context will be changed as a side effect of this * method call * @param fieldName in some sort syntax variations the field name precedes the xContent object that specifies further parameters, e.g. * in '{ "foo": { "order" : "asc"} }'. When parsing the inner object, the field name can be passed in via this argument */ public static FieldSortBuilder fromXContent(XContentParser parser, String fieldName) throws IOException { return PARSER.parse(parser, new FieldSortBuilder(fieldName), null); }
@Override public FieldSortBuilder rewrite(QueryRewriteContext ctx) throws IOException { if (nestedFilter == null && nestedSort == null) { return this; } if (nestedFilter != null) { QueryBuilder rewrite = nestedFilter.rewrite(ctx); if (nestedFilter == rewrite) { return this; } return new FieldSortBuilder(this).setNestedFilter(rewrite); } else { NestedSortBuilder rewrite = nestedSort.rewrite(ctx); if (nestedSort == rewrite) { return this; } return new FieldSortBuilder(this).setNestedSort(rewrite); } } }
/** * Constructs a new field based sort. * * @param field The field name. */ public static FieldSortBuilder fieldSort(String field) { return new FieldSortBuilder(field); }
/** * Constructs a new field based sort. * * @param field The field name. */ public static FieldSortBuilder fieldSort(String field) { return new FieldSortBuilder(field); }
FieldSortBuilder sortBy = new FieldSortBuilder(sortField.getField()) .order(sortOrder) .missing(missingSortOrder)
private static SortBuilder<?> fieldOrScoreSort(String fieldName) { if (fieldName.equals(ScoreSortBuilder.NAME)) { return new ScoreSortBuilder(); } else { return new FieldSortBuilder(fieldName); } }
/** * Creates a new {@link FieldSortBuilder} from the query held by the {@link XContentParser} in * {@link org.elasticsearch.common.xcontent.XContent} format. * * @param parser the input parser. The state on the parser contained in this context will be changed as a side effect of this * method call * @param fieldName in some sort syntax variations the field name precedes the xContent object that specifies further parameters, e.g. * in '{ "foo": { "order" : "asc"} }'. When parsing the inner object, the field name can be passed in via this argument */ public static FieldSortBuilder fromXContent(XContentParser parser, String fieldName) throws IOException { return PARSER.parse(parser, new FieldSortBuilder(fieldName), null); }
private void addSort(SearchRequestBuilder searchRequestBuilder) { searchRequestBuilder.addSort(new FieldSortBuilder("nestedVersion.majorVersion").order(SortOrder.DESC)) .addSort(new FieldSortBuilder("nestedVersion.minorVersion").order(SortOrder.DESC)) .addSort(new FieldSortBuilder("nestedVersion.incrementalVersion").order(SortOrder.DESC)) .addSort(new FieldSortBuilder("nestedVersion.qualifier").order(SortOrder.DESC).missing("_first")); }
@Test public void shouldWithSort() { final FieldSortBuilder sort = new FieldSortBuilder("_doc"); scroll.withSort(sort); }
private static void addMetricSort(ProjectMeasuresQuery query, SearchRequestBuilder requestBuilder, String sort) { requestBuilder.addSort( new FieldSortBuilder(FIELD_MEASURES_VALUE) .setNestedPath(FIELD_MEASURES) .setNestedFilter(termQuery(FIELD_MEASURES_KEY, sort)) .order(query.isAsc() ? ASC : DESC)); }