@Override public SearchPredicate bool(Consumer<? super BooleanJunctionPredicateContext> clauseContributor) { return delegate.bool( clauseContributor ); }
@Override public MatchPredicateContext match() { return delegate.match(); }
@Override public MatchAllPredicateContext matchAll() { return delegate.matchAll(); }
.predicate( f -> f.bool() .must( f.nested().onObjectField( "nestedObject.nestedObject" ) .nest( f.bool() .must( f.match() .onField( "nestedObject.nestedObject.field1" ) .matching( MATCHING_SECOND_LEVEL_CONDITION1_FIELD1 ) .must( f.match() .onField( "nestedObject.nestedObject.field2" ) .matching( MATCHING_SECOND_LEVEL_CONDITION1_FIELD2 ) .must( f.nested().onObjectField( "nestedObject.nestedObject" ) .nest( f.bool() .must( f.match() .onField( "nestedObject.nestedObject.field1" ) .matching( MATCHING_SECOND_LEVEL_CONDITION2_FIELD1 ) .must( f.match() .onField( "nestedObject.nestedObject.field2" ) .matching( MATCHING_SECOND_LEVEL_CONDITION2_FIELD2 )
@Test public void should_mustNot() { StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); SearchQuery<DocumentReference> query = searchTarget.query() .asReference() .predicate( f -> f.bool() .should( f.match().onField( "field1" ).matching( FIELD1_VALUE1 ) ) .should( f.match().onField( "field1" ).matching( FIELD1_VALUE3 ) ) .mustNot( f.match().onField( "field1" ).matching( FIELD1_VALUE1 ) ) .toPredicate() ) .build(); assertThat( query ) .hasDocRefHitsAnyOrder( INDEX_NAME, DOCUMENT_3 ); }
@Test public void boost() { StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); SearchQuery<DocumentReference> query = searchTarget.query() .asReference() .predicate( f -> f.bool() .should( f.spatial().within().onField( "geoPoint" ).polygon( CHEZ_MARGOTTE_POLYGON ) ) .should( f.match().onField( "string" ).boostedTo( 42 ).matching( OURSON_QUI_BOIT_STRING ) ) .toPredicate() ) .sort( c -> c.byScore() ) .build(); assertThat( query ) .hasDocRefHitsExactOrder( INDEX_NAME, OURSON_QUI_BOIT_ID, CHEZ_MARGOTTE_ID ); query = searchTarget.query() .asReference() .predicate( f -> f.bool() .should( f.spatial().within().onField( "geoPoint" ).boostedTo( 42 ).polygon( CHEZ_MARGOTTE_POLYGON ) ) .should( f.match().onField( "string" ).matching( OURSON_QUI_BOIT_STRING ) ) .toPredicate() ) .sort( c -> c.byScore() ) .build(); assertThat( query ) .hasDocRefHitsExactOrder( INDEX_NAME, CHEZ_MARGOTTE_ID, OURSON_QUI_BOIT_ID ); }
.predicate( f -> f.bool() .must( f.range().onField( "flattenedObject.string" ) .from( MATCHING_STRING ).to( MATCHING_STRING ) .must( f.range().onField( "flattenedObject.integer" ) .from( MATCHING_INTEGER - 1 ).to( MATCHING_INTEGER + 1 ) .must( f.range().onField( "flattenedObject.localDate" ) .from( MATCHING_LOCAL_DATE.minusDays( 1 ) ).to( MATCHING_LOCAL_DATE.plusDays( 1 ) ) .predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.bool() .must( f.range().onField( "nestedObject.string" ) .from( MATCHING_STRING ).to( MATCHING_STRING ) .must( f.range().onField( "nestedObject.integer" ) .from( MATCHING_INTEGER - 1 ).to( MATCHING_INTEGER + 1 ) .must( f.range().onField( "nestedObject.localDate" ) .from( MATCHING_LOCAL_DATE.minusDays( 1 ) ) .to( MATCHING_LOCAL_DATE.plusDays( 1 ) )
@Override public SpatialPredicateContext spatial() { return delegate.spatial(); }
@Override public RangePredicateContext range() { return delegate.range(); }
@Override public MatchIdPredicateContext id() { return delegate.id(); }
@Override public NestedPredicateContext nested() { return delegate.nested(); }
.predicate( f -> f.extension( new SupportedExtension() ) .extendedPredicate( "string", STRING_1 ) .predicate( f -> f.extension() .predicate( root -> root.extension() .ifSupported( new UnSupportedExtension(), .predicate( root -> root.extension() .ifSupported( new UnSupportedExtension(), c -> c.match().onField( "string" ).matching( STRING_1 ).toPredicate()
@Override public <T> T extension(SearchPredicateFactoryContextExtension<T> extension) { return delegate.extension( extension ); }
.predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.bool() .must( f.match() .onField( "nestedObject.string" ) .matching( MATCHING_STRING ) .must( f.nested().onObjectField( "nestedObject.nestedObject" ) .nest( f.bool() .must( f.match() .onField( "nestedObject.nestedObject.field1" ) .matching( MATCHING_SECOND_LEVEL_CONDITION2_FIELD1 ) .must( f.match() .onField( "nestedObject.nestedObject.field2" ) .matching( MATCHING_SECOND_LEVEL_CONDITION2_FIELD2 )
@Test public void should_function() { StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); SearchQuery<DocumentReference> query = searchTarget.query() .asReference() .predicate( f -> f.bool() .should( f2 -> f2.match().onField( "field1" ).matching( FIELD1_VALUE1 ).toPredicate() ) .should( f2 -> f2.match().onField( "field1" ).matching( FIELD1_VALUE2 ).toPredicate() ) .toPredicate() ) .build(); assertThat( query ) .hasDocRefHitsAnyOrder( INDEX_NAME, DOCUMENT_1, DOCUMENT_2 ); }
@Override public SpatialPredicateContext spatial() { return delegate.spatial(); }
@Override public RangePredicateContext range() { return delegate.range(); }
@Override public MatchIdPredicateContext id() { return delegate.id(); }
@Override public NestedPredicateContext nested() { return delegate.nested(); }