@Test public void rangeQueryBelow() { SearchQuery<DocumentReference> query = rangeQuery( f -> f.range().onField( FIELD_PATH ).below( Boolean.FALSE ).toPredicate() ); assertHasHitsWithBooleanProperties( query, Boolean.FALSE, Boolean.FALSE ); }
@Test public void below_withDslConverter() { StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); for ( ByTypeFieldModel<?> fieldModel : indexMapping.supportedFieldWithDslConverterModels ) { String absoluteFieldPath = fieldModel.relativeFieldName; Object upperValueToMatch = new ValueWrapper<>( fieldModel.predicateUpperBound ); SearchQuery<DocumentReference> query = searchTarget.query() .asReference() .predicate( f -> f.range().onField( absoluteFieldPath ).below( upperValueToMatch ).toPredicate() ) .build(); assertThat( query ) .hasDocRefHitsAnyOrder( INDEX_NAME, DOCUMENT_1, DOCUMENT_2 ); } }
@Test public void below() { StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); for ( ByTypeFieldModel<?> fieldModel : indexMapping.supportedFieldModels ) { String absoluteFieldPath = fieldModel.relativeFieldName; Object upperValueToMatch = fieldModel.predicateUpperBound; SearchQuery<DocumentReference> query = searchTarget.query() .asReference() .predicate( f -> f.range().onField( absoluteFieldPath ).below( upperValueToMatch ).toPredicate() ) .build(); assertThat( query ) .hasDocRefHitsAnyOrder( INDEX_NAME, DOCUMENT_1, DOCUMENT_2 ); } }
@Test public void below_include_exclude() { StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); for ( ByTypeFieldModel<?> fieldModel : indexMapping.supportedFieldModels ) { String absoluteFieldPath = fieldModel.relativeFieldName; Object upperValueToMatch = fieldModel.document2Value.indexedValue; // Default is inclusion SearchQuery<DocumentReference> query = searchTarget.query() .asReference() .predicate( f -> f.range().onField( absoluteFieldPath ).below( upperValueToMatch ).toPredicate() ) .build(); assertThat( query ) .hasDocRefHitsAnyOrder( INDEX_NAME, DOCUMENT_1, DOCUMENT_2 ); // explicit exclusion query = searchTarget.query() .asReference() .predicate( f -> f.range().onField( absoluteFieldPath ).below( upperValueToMatch ).excludeLimit().toPredicate() ) .build(); assertThat( query ) .hasDocRefHitsAnyOrder( INDEX_NAME, DOCUMENT_1 ); } }
() -> searchTarget.predicate().range().onField( absoluteFieldPath ).below( invalidValueToMatch )
() -> searchTarget.predicate().range().onField( fieldPath ).below( null )
.predicate( f -> f.range().onField( indexMapping.string1Field.relativeFieldName ) .orField( indexMapping.string2Field.relativeFieldName ) .below( indexMapping.string1Field.document1Value.indexedValue ) .toPredicate() .predicate( f -> f.range().onField( indexMapping.string1Field.relativeFieldName ) .orFields( indexMapping.string2Field.relativeFieldName, indexMapping.string3Field.relativeFieldName ) .below( indexMapping.string1Field.document1Value.indexedValue ) .toPredicate() .asReference() .predicate( f -> f.range().onFields( indexMapping.string1Field.relativeFieldName, indexMapping.string2Field.relativeFieldName ) .below( indexMapping.string1Field.document1Value.indexedValue ) .toPredicate()