number = number != null ? number : ((NumericRangeQuery)queryOrQueryObject).getMax(); SortField.Type fieldType = SortField.Type.INT; if ( number instanceof Long )
@SuppressWarnings( "unchecked" ) @Test void shouldBuildQueryRepresentingNumberProperty() { // given BooleanQuery booleanQuery = (BooleanQuery) newSeekQuery( 12 ); ConstantScoreQuery constantScoreQuery = (ConstantScoreQuery) booleanQuery.clauses().get( 0 ).getQuery(); NumericRangeQuery<Double> query = (NumericRangeQuery<Double>) constantScoreQuery.getQuery(); // then assertEquals( 12.0, query.getMin(), 0.001 ); assertEquals( 12.0, query.getMax(),0.001 ); }
@Test void shouldBuildRangeSeekByNumberQueryForStrings() { // given NumericRangeQuery<Double> query = LuceneDocumentStructure.newInclusiveNumericRangeSeekQuery( 12.0d, null ); // then assertEquals( "number", query.getField() ); assertEquals( 12.0, query.getMin(), 0.001 ); assertTrue( query.includesMin() ); assertNull( query.getMax() ); assertTrue( query.includesMax() ); }
@Test void shouldBuildQueryRepresentingMultipleProperties() { // given BooleanQuery booleanQuery = (BooleanQuery) newSeekQuery( true, "Characters", 12, new Integer[]{1, 2, 3} ); ConstantScoreQuery boolScoreQuery = (ConstantScoreQuery) booleanQuery.clauses().get( 0 ).getQuery(); TermQuery boolTermQuery = (TermQuery) boolScoreQuery.getQuery(); ConstantScoreQuery stringScoreQuery = (ConstantScoreQuery) booleanQuery.clauses().get( 1 ).getQuery(); TermQuery stringTermQuery = (TermQuery) stringScoreQuery.getQuery(); ConstantScoreQuery numberScoreQuery = (ConstantScoreQuery) booleanQuery.clauses().get( 2 ).getQuery(); NumericRangeQuery<Double> numericRangeQuery = (NumericRangeQuery<Double>) numberScoreQuery.getQuery(); ConstantScoreQuery arrayScoreQuery = (ConstantScoreQuery) booleanQuery.clauses().get( 3 ).getQuery(); TermQuery arrayTermQuery = (TermQuery) arrayScoreQuery.getQuery(); // then assertEquals( "true", boolTermQuery.getTerm().text() ); assertEquals( "Characters", stringTermQuery.getTerm().text() ); assertEquals( 12.0, numericRangeQuery.getMin(), 0.001 ); assertEquals( 12.0, numericRangeQuery.getMax(), 0.001 ); assertEquals( "D1.0|2.0|3.0|", arrayTermQuery.getTerm().text() ); }
/** Returns the upper value of this range filter */ public T getMax() { return query.getMax(); }
/** Returns the upper value of this range filter */ public T getMax() { return query.getMax(); }
public static Sort sort(Query query, OIndexDefinition index, boolean ascSortOrder) { String key = index.getFields().iterator().next(); Number number = ((NumericRangeQuery) query).getMin(); number = number != null ? number : ((NumericRangeQuery) query).getMax(); SortField.Type fieldType = SortField.Type.INT; if (number instanceof Long) { fieldType = SortField.Type.LONG; } else if (number instanceof Float) { fieldType = SortField.Type.FLOAT; } else if (number instanceof Double) { fieldType = SortField.Type.DOUBLE; } return new Sort(new SortField(key, fieldType, ascSortOrder)); }
private static JsonObject convertNumericRangeQuery(NumericRangeQuery<?> query) { JsonObject interval = new JsonObject(); if ( query.getMin() != null ) { interval.addProperty( query.includesMin() ? "gte" : "gt", query.getMin() ); } if ( query.getMax() != null ) { interval.addProperty( query.includesMax() ? "lte" : "lt", query.getMax() ); } interval.addProperty( "boost", query.getBoost() ); JsonObject range = JsonBuilder.object().add( "range", JsonBuilder.object().add( query.getField(), interval )) .build(); return wrapQueryForNestedIfRequired( query.getField(), range); }
out.append( q.includesMin() ? '[' : '{' ); Number lt = q.getMin(); Number ut = q.getMax(); if (lt==null) { out.append('*');
private static JsonObject convertNumericRangeQuery(NumericRangeQuery<?> query) { JsonBuilder.Object interval = JsonBuilder.object(); if ( query.getMin() != null ) { interval.addProperty( query.includesMin() ? "gte" : "gt", query.getMin() ); } if ( query.getMax() != null ) { interval.addProperty( query.includesMax() ? "lte" : "lt", query.getMax() ); } interval.append( boostAppender( query ) ); JsonObject range = JsonBuilder.object().add( "range", JsonBuilder.object().add( query.getField(), interval ) ) .build(); return wrapQueryForNestedIfRequired( query.getField(), range ); }
private static JsonObject convertNumericRangeQuery(NumericRangeQuery<?> query) { JsonBuilder.Object interval = JsonBuilder.object(); if ( query.getMin() != null ) { interval.addProperty( query.includesMin() ? "gte" : "gt", query.getMin() ); } if ( query.getMax() != null ) { interval.addProperty( query.includesMax() ? "lte" : "lt", query.getMax() ); } interval.append( boostAppender( query ) ); JsonObject range = JsonBuilder.object().add( "range", JsonBuilder.object().add( query.getField(), interval ) ) .build(); return wrapQueryForNestedIfRequired( query.getField(), range ); }