private Query createQuery(QueryBuilder queryBuilder, String fieldName, String term) { return queryBuilder .keyword() .onField( fieldName ) .ignoreFieldBridge() .matching( term ) .createQuery(); }
private void searchSongDsl(Session session) throws Exception { FullTextSession fullTextSession = Search.getFullTextSession( session ); Transaction tx = session.beginTransaction(); QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity( Song.class ).get(); Query queryEmmanuel = queryBuilder.keyword().onField( "mp3FileName" ).ignoreFieldBridge().matching( "Emmanuel" ).createQuery(); List<Song> result = fullTextSession.createFullTextQuery( queryEmmanuel ).list(); assertEquals( "Emmanuel is not an artist", 0, result.size() ); Query queryHardy = queryBuilder.keyword().onField( "mp3FileName" ).ignoreFieldBridge().matching( "Hardy" ).createQuery(); result = fullTextSession.createFullTextQuery( queryHardy ).list(); assertEquals( "Hardy is the artist", 1, result.size() ); tx.commit(); }
@TestForIssue(jiraKey = "HSEARCH-1256") private void searchSongDslErrorMessage(Session session) throws Exception { FullTextSession fullTextSession = Search.getFullTextSession( session ); Transaction tx = session.beginTransaction(); QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity( Song.class ).get(); boolean exceptionCaught = false; try { queryBuilder.keyword().onField( "mp3FileName" ).ignoreFieldBridge().matching( "Emmanuel" ).createQuery(); } catch (Exception e) { exceptionCaught = true; Assert.assertTrue( e instanceof SearchException ); Assert.assertTrue( e.getMessage().contains( "The FieldBridge must be a TwoWayFieldBridge or you have to enable the ignoreFieldBridge option when defining a Query" ) ); } Assert.assertTrue( exceptionCaught ); tx.commit(); }
@Transactional @SuppressWarnings("unchecked") public List<EntityWithCDIAwareBridges> searchFieldBridge(String terms) { FullTextEntityManager ftEntityManager = Search.getFullTextEntityManager( entityManager ); QueryBuilder queryBuilder = ftEntityManager.getSearchFactory().buildQueryBuilder() .forEntity( EntityWithCDIAwareBridges.class ).get(); Query luceneQuery = queryBuilder.keyword() .onField( "internationalizedValue" ) .ignoreFieldBridge() .matching( terms ) .createQuery(); FullTextQuery query = ftEntityManager.createFullTextQuery( luceneQuery, EntityWithCDIAwareBridges.class ); return query.getResultList(); }
@Transactional @SuppressWarnings("unchecked") public List<EntityWithSpringAwareBridges> searchNonSpringBridge(String terms) { FullTextEntityManager ftEntityManager = Search.getFullTextEntityManager( entityManager ); QueryBuilder queryBuilder = ftEntityManager.getSearchFactory().buildQueryBuilder() .forEntity( EntityWithSpringAwareBridges.class ).get(); Query luceneQuery = queryBuilder.keyword() .onField( EntityWithSpringAwareBridges.NON_SPRING_BRIDGE_FIELD_NAME ) .ignoreFieldBridge() .matching( terms ) .createQuery(); FullTextQuery query = ftEntityManager.createFullTextQuery( luceneQuery, EntityWithSpringAwareBridges.class ); return query.getResultList(); } }
@Transactional @SuppressWarnings("unchecked") public List<EntityWithSpringAwareBridges> searchFieldBridge(String terms) { FullTextEntityManager ftEntityManager = Search.getFullTextEntityManager( entityManager ); QueryBuilder queryBuilder = ftEntityManager.getSearchFactory().buildQueryBuilder() .forEntity( EntityWithSpringAwareBridges.class ).get(); Query luceneQuery = queryBuilder.keyword() .onField( "internationalizedValue" ) .ignoreFieldBridge() .matching( terms ) .createQuery(); FullTextQuery query = ftEntityManager.createFullTextQuery( luceneQuery, EntityWithSpringAwareBridges.class ); return query.getResultList(); }
@Transactional @SuppressWarnings("unchecked") public List<EntityWithSpringAwareBridges> searchClassBridge(String terms) { FullTextEntityManager ftEntityManager = Search.getFullTextEntityManager( entityManager ); QueryBuilder queryBuilder = ftEntityManager.getSearchFactory().buildQueryBuilder() .forEntity( EntityWithSpringAwareBridges.class ).get(); Query luceneQuery = queryBuilder.keyword() .onField( EntityWithSpringAwareBridges.CLASS_BRIDGE_FIELD_NAME ) .ignoreFieldBridge() .matching( terms ) .createQuery(); FullTextQuery query = ftEntityManager.createFullTextQuery( luceneQuery, EntityWithSpringAwareBridges.class ); return query.getResultList(); }
@Transactional @SuppressWarnings("unchecked") public List<EntityWithCDIAwareBridges> searchClassBridge(String terms) { FullTextEntityManager ftEntityManager = Search.getFullTextEntityManager( entityManager ); QueryBuilder queryBuilder = ftEntityManager.getSearchFactory().buildQueryBuilder() .forEntity( EntityWithCDIAwareBridges.class ).get(); Query luceneQuery = queryBuilder.keyword() .onField( EntityWithCDIAwareBridges.CLASS_BRIDGE_FIELD_NAME ) .ignoreFieldBridge() .matching( terms ) .createQuery(); FullTextQuery query = ftEntityManager.createFullTextQuery( luceneQuery, EntityWithCDIAwareBridges.class ); return query.getResultList(); } }
@Test(expected = SearchException.class) public void testNullIndexingWithDSLQueryIgnoringFieldBridge() throws Exception { QueryBuilder queryBuilder = getSearchFactory().buildQueryBuilder().forEntity( Value.class ).get(); queryBuilder.keyword().onField( "value" ).ignoreFieldBridge().matching( null ).createQuery(); }
@SuppressWarnings("unchecked") public List<Song> search(String name) { QueryBuilder queryBuilder = em.getSearchFactory() .buildQueryBuilder() .forEntity( Song.class ) .get(); Query luceneQuery = queryBuilder .keyword() .onField( "mp3FileName" ) .ignoreFieldBridge() .matching( name ) .createQuery(); return em.createFullTextQuery( luceneQuery ).getResultList(); }
@SuppressWarnings("unchecked") private List<IterableBridgeTestEntity> findResults( String fieldName, Object value, boolean checkRawValue) { QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder() .forEntity( IterableBridgeTestEntity.class ).get(); TermMatchingContext termMatchingContext = queryBuilder.keyword().onField( fieldName ); if ( checkRawValue ) { termMatchingContext.ignoreFieldBridge(); termMatchingContext.ignoreAnalyzer(); } Query query = termMatchingContext.matching( value ).createQuery(); return fullTextSession.createFullTextQuery( query, IterableBridgeTestEntity.class ).list(); }
@Test @TestForIssue(jiraKey = "HSEARCH-2656") public void testNumericQueryWithFieldTypeOverriddenByFieldBridge() throws Exception { final QueryBuilder monthQb = helper.queryBuilder( Month.class ); Query query = monthQb .keyword() .onField( "monthBase0" ) .ignoreFieldBridge().ignoreAnalyzer() .matching( 0 ) .createQuery(); helper.assertThat( query ).from( Month.class ).matchesUnorderedIds( 1 ); }
@SuppressWarnings("unchecked") private List<ArrayBridgeNullEmbeddedTestEntity> findResults(String fieldName, Object value, boolean checkNullToken) { QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder() .forEntity( ArrayBridgeNullEmbeddedTestEntity.class ).get(); TermMatchingContext termMatchingContext = queryBuilder.keyword().onField( fieldName ); if ( checkNullToken ) { termMatchingContext.ignoreFieldBridge(); termMatchingContext.ignoreAnalyzer(); } Query query = termMatchingContext.matching( value ).createQuery(); return fullTextSession.createFullTextQuery( query, ArrayBridgeNullEmbeddedTestEntity.class ).list(); }
@SuppressWarnings("unchecked") private List<MapBridgeNullEmbeddedTestEntity> findResults(String fieldName, Object value, boolean checkNullToken) { QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder() .forEntity( MapBridgeNullEmbeddedTestEntity.class ).get(); TermMatchingContext termMatchingContext = queryBuilder.keyword().onField( fieldName ); if ( checkNullToken ) { termMatchingContext.ignoreFieldBridge(); termMatchingContext.ignoreAnalyzer(); } Query query = termMatchingContext.matching( value ).createQuery(); return fullTextSession.createFullTextQuery( query, MapBridgeNullEmbeddedTestEntity.class ).list(); }
@SuppressWarnings("unchecked") private List<ArrayBridgeNullEmbeddedTestEntity> findEmbeddedNullResults(String fieldName, Object value, boolean checkNullToken) { QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder() .forEntity( ArrayBridgeNullEmbeddedTestEntity.class ).get(); TermMatchingContext termMatchingContext = queryBuilder.keyword().onField( fieldName ); if ( checkNullToken ) { termMatchingContext.ignoreFieldBridge(); } Query query = termMatchingContext.ignoreAnalyzer().matching( value ).createQuery(); return fullTextSession.createFullTextQuery( query, ArrayBridgeNullEmbeddedTestEntity.class ).list(); }
@SuppressWarnings("unchecked") private List<MapBridgeNullEmbeddedTestEntity> findEmbeddedNullResults(String fieldName, Object value, boolean checkNullToken) { QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder() .forEntity( MapBridgeNullEmbeddedTestEntity.class ).get(); TermMatchingContext termMatchingContext = queryBuilder.keyword().onField( fieldName ); if ( checkNullToken ) { termMatchingContext.ignoreFieldBridge(); } Query query = termMatchingContext.ignoreAnalyzer().matching( value ).createQuery(); return fullTextSession.createFullTextQuery( query, MapBridgeNullEmbeddedTestEntity.class ).list(); }
@SuppressWarnings("unchecked") private List<ArrayBridgeTestEntity> findResults(String fieldName, Object value, boolean checkNullToken) { QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder() .forEntity( ArrayBridgeTestEntity.class ).get(); TermMatchingContext termMatchingContext = queryBuilder.keyword().onField( fieldName ); if ( checkNullToken ) { termMatchingContext.ignoreFieldBridge(); termMatchingContext.ignoreAnalyzer(); } Query query = termMatchingContext.matching( value ).createQuery(); return fullTextSession.createFullTextQuery( query, ArrayBridgeTestEntity.class ).list(); }
@SuppressWarnings("unchecked") private List<MapBridgeTestEntity> findResults(String fieldName, Object value, boolean checkNullToken) { QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder() .forEntity( MapBridgeTestEntity.class ).get(); TermMatchingContext termMatchingContext = queryBuilder.keyword().onField( fieldName ); if ( checkNullToken ) { termMatchingContext.ignoreFieldBridge(); termMatchingContext.ignoreAnalyzer(); } Query query = termMatchingContext.matching( value ).createQuery(); return fullTextSession.createFullTextQuery( query, MapBridgeTestEntity.class ).list(); }
@SuppressWarnings("unchecked") private List<IterableBridgeNullEmbeddedTestEntity> findResults( String fieldName, Object value, boolean checkRawValue) { QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder() .forEntity( IterableBridgeNullEmbeddedTestEntity.class ).get(); TermMatchingContext termMatchingContext = queryBuilder.keyword().onField( fieldName ); if ( checkRawValue ) { termMatchingContext.ignoreFieldBridge(); termMatchingContext.ignoreAnalyzer(); } Query query = termMatchingContext.matching( value ).createQuery(); return fullTextSession.createFullTextQuery( query, IterableBridgeNullEmbeddedTestEntity.class ).list(); }
@SuppressWarnings("unchecked") private List<IterableBridgeNullEmbeddedTestEntity> findEmbeddedNullResults(String fieldName, Object value, boolean checkForNullToken) { QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder() .forEntity( IterableBridgeNullEmbeddedTestEntity.class ).get(); TermMatchingContext termMatchingContext = queryBuilder.keyword().onField( fieldName ); if ( checkForNullToken ) { termMatchingContext.ignoreFieldBridge(); } Query query = termMatchingContext .ignoreAnalyzer() .matching( value ).createQuery(); return fullTextSession.createFullTextQuery( query, IterableBridgeNullEmbeddedTestEntity.class ).list(); }