private static List<FieldSortBuilder> doFill(List<Field> fields, boolean asc) { return fields.stream().map(field -> { FieldSortBuilder sortBuilder = SortBuilders.fieldSort(field.name); boolean effectiveAsc = asc != field.reverse; sortBuilder.order(effectiveAsc ? SortOrder.ASC : SortOrder.DESC); boolean effectiveMissingLast = asc == field.missingLast; sortBuilder.missing(effectiveMissingLast ? "_last" : "_first"); return sortBuilder; }).collect(MoreCollectors.toList(fields.size())); }
private void expectField(FieldSortBuilder field, String expectedField, String expectedMissing, SortOrder expectedSort) { assertThat(field.getFieldName()).isEqualTo(expectedField); assertThat(field.missing()).isEqualTo(expectedMissing); assertThat(field.order()).isEqualTo(expectedSort); } }
private static List<FieldSortBuilder> sort(Query query, ElasticsearchPersistentEntity<?> entity) { if (query.getSort() == null || query.getSort().isUnsorted()) { return Collections.emptyList(); } List<FieldSortBuilder> mappedSort = new ArrayList<>(); for (Sort.Order order : query.getSort()) { ElasticsearchPersistentProperty property = entity.getPersistentProperty(order.getProperty()); String fieldName = property != null ? property.getFieldName() : order.getProperty(); FieldSortBuilder sort = SortBuilders.fieldSort(fieldName) .order(order.getDirection().isDescending() ? SortOrder.DESC : SortOrder.ASC); if (order.getNullHandling() == Sort.NullHandling.NULLS_FIRST) { sort.missing("_first"); } else if (order.getNullHandling() == Sort.NullHandling.NULLS_LAST) { sort.missing("_last"); } mappedSort.add(sort); } return mappedSort; }
/** Copy constructor. */ public FieldSortBuilder(FieldSortBuilder template) { this(template.fieldName); this.order(template.order()); this.missing(template.missing()); this.unmappedType(template.unmappedType()); if (template.sortMode != null) { this.sortMode(template.sortMode()); } this.setNestedFilter(template.getNestedFilter()); this.setNestedPath(template.getNestedPath()); if (template.getNestedSort() != null) { this.setNestedSort(template.getNestedSort()); }; }
.missing(missingSortOrder) .unmappedType(sortFieldType.getFieldType()); searchBuilder.sort(sortBy);
FieldSortBuilder sorter = new FieldSortBuilder("price"); sorter.missing("_first");
private static List<FieldSortBuilder> doFill(List<Field> fields, boolean asc) { return fields.stream().map(field -> { FieldSortBuilder sortBuilder = SortBuilders.fieldSort(field.name); boolean effectiveAsc = asc != field.reverse; sortBuilder.order(effectiveAsc ? SortOrder.ASC : SortOrder.DESC); boolean effectiveMissingLast = asc == field.missingLast; sortBuilder.missing(effectiveMissingLast ? "_last" : "_first"); return sortBuilder; }).collect(MoreCollectors.toList(fields.size())); }
/** Copy constructor. */ public FieldSortBuilder(FieldSortBuilder template) { this(template.fieldName); this.order(template.order()); this.missing(template.missing()); this.unmappedType(template.unmappedType()); if (template.sortMode != null) { this.sortMode(template.sortMode()); } this.setNestedFilter(template.getNestedFilter()); this.setNestedPath(template.getNestedPath()); }
@Override public FieldSortBuilder buildSort(String idfName) { FieldSortBuilder fieldSortBuilder = SortBuilders.fieldSort(idfName).order(order).missing(valueArg); if (sortMethodInvocation.getParameterCount() == 3) { String sortModeText = sortMethodInvocation.getParameterAsString(2); fieldSortBuilder.sortMode(SortMode.fromString(sortModeText)); } return fieldSortBuilder; } });
/** Copy constructor. */ public FieldSortBuilder(FieldSortBuilder template) { this(template.fieldName); this.order(template.order()); this.missing(template.missing()); this.unmappedType(template.unmappedType()); if (template.sortMode != null) { this.sortMode(template.sortMode()); } this.setNestedFilter(template.getNestedFilter()); this.setNestedPath(template.getNestedPath()); if (template.getNestedSort() != null) { this.setNestedSort(template.getNestedSort()); }; }
/** Copy constructor. */ public FieldSortBuilder(FieldSortBuilder template) { this(template.fieldName); this.order(template.order()); this.missing(template.missing()); this.unmappedType(template.unmappedType()); if (template.sortMode != null) { this.sortMode(template.sortMode()); } this.setNestedFilter(template.getNestedFilter()); this.setNestedPath(template.getNestedPath()); if (template.getNestedSort() != null) { this.setNestedSort(template.getNestedSort()); }; }
@Override public FieldSortBuilder buildSort(String nestedFieldName) { BoolQueryBuilder filter = null; if (hasFilterExpr) { SQLExpr filterExpr = invocation.getParameter(3); BoolExpressionParser boolExpressionParser = new BoolExpressionParser(); String queryAs = invocation.getQueryAs(); SQLArgs sqlArgs = invocation.getSqlArgs(); filter = boolExpressionParser.parseBoolQueryExpr(filterExpr, queryAs, sqlArgs); } return SortBuilders.fieldSort(nestedFieldName) .missing(defaultSortVal).sortMode(SortMode.fromString(sortMode)) .setNestedFilter(hasFilterExpr ? filter : null).order(order); } });
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")); }
@Override public <T extends AbstractToscaType> T findMostRecent(Class<T> elementType, String elementId) { return searchDAO.buildQuery(elementType).setFilters(fromKeyValueCouples("rawElementId", elementId)).prepareSearch() .alterSearchRequestBuilder( 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"))) .find(); }
requestBuilder.addSort(SortBuilders.fieldSort(SearchDocumentFieldName.AVAILABLE_DATE.getFieldName()).order(searchCriteria.getSortOrder()).missing("_last"));
SearchDocumentFieldName.AVAILABLE_DATE .getFieldName()) .order(searchCriteria.getSortOrder()).missing("_last"));
.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"));