@Test public void search_error_nonObjectField() { StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); thrown.expect( SearchException.class ); thrown.expectMessage( "'flattenedObject.string'" ); thrown.expectMessage( "is not an object field" ); searchTarget.predicate().nested().onObjectField( "flattenedObject.string" ); }
@Test public void search_error_missingField() { StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); thrown.expect( SearchException.class ); thrown.expectMessage( "Unknown field" ); thrown.expectMessage( "'doesNotExist'" ); searchTarget.predicate().nested().onObjectField( "doesNotExist" ); }
@Test public void search_error_nonNestedField() { StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); thrown.expect( SearchException.class ); thrown.expectMessage( "'flattenedObject'" ); thrown.expectMessage( "is not stored as nested" ); searchTarget.predicate().nested().onObjectField( "flattenedObject" ); }
.predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.bool() .must( f.nested().onObjectField( "nestedObject.nestedObject" ) .nest( f.bool() .must( f.match() .must( f.nested().onObjectField( "nestedObject.nestedObject" ) .nest( f.bool() .must( f.match()
@Override public List<Book> searchByMedium(String terms, BookMedium medium, int offset, int limit) { FullTextQuery<Book> query = entityManager.search( Book.class ).query() .asEntity() .predicate( f -> f.bool( b -> { if ( terms != null && !terms.isEmpty() ) { b.must( f.match() .onField( "title" ).boostedTo( 2.0f ) .orField( "summary" ) .matching( terms ) ); } b.must( f.nested().onObjectField( "copies" ) .nest( f.match().onField( "copies.medium" ).matching( medium ) ) ); } ) ) .sort( b -> b.byField( "title_sort" ) ) .build(); query.setFirstResult( offset ); query.setMaxResults( limit ); return query.getResultList(); }
b.must( f.nested().onObjectField( "copies" ) .nest( f.spatial() .within() b.must( f.nested().onObjectField( "copies" ) .nest( f.bool( b2 -> { for ( LibraryService service : libraryServices ) {
.predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.bool() .must( f.match() .must( f.nested().onObjectField( "nestedObject.nestedObject" ) .nest( f.bool() .must( f.match()
StubMappingSearchTarget searchTarget = indexManager.createSearchTarget(); SearchPredicate predicate1 = searchTarget.predicate().nested().onObjectField( "nestedObject.nestedObject" ) .nest( f -> f.bool() .must( f.match() SearchPredicate predicate2 = searchTarget.predicate().nested().onObjectField( "nestedObject.nestedObject" ) .nest( f -> f.bool() .must( f.match() .predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.bool()
target.predicate().nested().onObjectField( "copies" ) .nest( target.predicate().spatial() .within() target.predicate().nested().onObjectField( "copies" ) .nest( nestedBoolean ) );
.predicate( f -> f.bool() .must( f.nested().onObjectField( "nestedObject.nestedObject" ) .nest( f.bool() .must( f.match() .must( f.nested().onObjectField( "nestedObject.nestedObject" ) .nest( f.bool() .must( f.match()
.predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.match() .onField( "nestedObject.string" ).matching( STRING_VALUE_1 ) .predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.match() .onField( "nestedObject.string" ).matching( STRING_VALUE_1 )
@Override public List<Book> searchByMedium(String terms, BookMedium medium, int offset, int limit) { FullTextSearchTarget<Book> target = entityManager.search( Book.class ); BooleanJunctionPredicateContext booleanBuilder = target.predicate().bool(); if ( terms != null && !terms.isEmpty() ) { booleanBuilder.must( target.predicate().match() .onField( "title" ).boostedTo( 2.0f ) .orField( "summary" ) .matching( terms ) ); } booleanBuilder.must( target.predicate().nested().onObjectField( "copies" ) .nest( target.predicate().match().onField( "copies.medium" ).matching( medium ) ) ); FullTextQuery<Book> query = entityManager.search( Book.class ).query() .asEntity() .predicate( booleanBuilder.toPredicate() ) .sort( target.sort().byField( "title_sort" ).toSort() ) .build(); query.setFirstResult( offset ); query.setMaxResults( limit ); return query.getResultList(); }
.predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.bool() .must( f.match().onField( "nestedObject.string" ).matching( "text 1_2" ) ) .predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.bool() .must( f.match().onField( "nestedObject.string" ).matching( "text 1_1" ) )
.predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.match() .onField( "nestedObject.string" ).matching( UPDATED_STRING ) .predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.match() .onField( "nestedObject.string" ).matching( UPDATED_STRING ) .predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.match() .onField( "nestedObject.string" ).matching( STRING_VALUE_1 )
.predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.bool() .must( f.match().onField( "nestedObject.string" ).matching( MATCHING_STRING ) )
.predicate( f -> f.nested().onObjectField( "nestedObject" ) .nest( f.bool() .must( f.range().onField( "nestedObject.string" )