fullTextEntityManager.getSearchFactory() .buildQueryBuilder().forEntity(User.class).get();
@Override public boolean isDisabled() { Boolean retVal = ourDisabled; if (retVal == null) { retVal = new TransactionTemplate(myTxManager).execute(t -> { try { FullTextEntityManager em = org.hibernate.search.jpa.Search.getFullTextEntityManager(myEntityManager); em.getSearchFactory().buildQueryBuilder().forEntity(ResourceTable.class).get(); return Boolean.FALSE; } catch (Exception e) { ourLog.trace("FullText test failed", e); ourLog.debug("Hibernate Search (Lucene) appears to be disabled on this server, fulltext will be disabled"); return Boolean.TRUE; } }); ourDisabled = retVal; } assert retVal != null; return retVal; }
QueryBuilder qb = em.getSearchFactory().buildQueryBuilder().forEntity(ResourceTable.class).get(); Scorer scorer = new QueryScorer(textQuery); Highlighter highlighter = new Highlighter(formatter, scorer); Analyzer analyzer = em.getSearchFactory().getAnalyzer(ResourceTable.class);
TermCodeSystemVersion csv = cs.getCurrentVersion(); FullTextEntityManager em = org.hibernate.search.jpa.Search.getFullTextEntityManager(myEntityManager); QueryBuilder qb = em.getSearchFactory().buildQueryBuilder().forEntity(TermConcept.class).get(); BooleanJunction<?> bool = qb.bool();
QueryBuilder qb = em.getSearchFactory().buildQueryBuilder().forEntity(ResourceTable.class).get(); BooleanJunction<?> bool = qb.bool();
public void updateIndex(T entity){ FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(em); fullTextEntityManager.index(entity); fullTextEntityManager.getSearchFactory().optimize(entity.getClass()); }
public Set<Class<?>> getSearchClasses() { return emf.runInTrans((emgr) -> { FullTextEntityManager femg = emgr.getFullTextEntityManager(); SearchFactory sf = femg.getSearchFactory(); Set<Class<?>> itypes = sf.getIndexedTypes(); return itypes; }); }
FullTextEntityManager fullTextEm = Search.getFullTextEntityManager(this.entityManager); QueryBuilder qb = fullTextEm.getSearchFactory().buildQueryBuilder().forEntity(Person.class).get(); FullTextQuery fullTextQuery = fullTextEm.createFullTextQuery(qb.all().createQuery()); // I added this line to use projections fullTextQuery.setProjection("id", "name", "email", "user", "phone"); Sort sortField = new Sort(new SortField("name", SortField.STRING)); fullTextQuery.setSort(sortField); return fullTextQuery.getResultList();
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(em); QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Customer.class).get(); TermMatchingContext onFields = qb.keyword().onFields("customer.shortDescription", "customer.longDescription"); BooleanJunction<BooleanJunction> bool = qb.bool(); org.apache.lucene.search.Query query = null; String[] searchTerms = searchQuery.split("\\s+"); for (int j = 0; j < searchTerms.length; j++) { String currentTerm = searchTerms[j]; bool.must(onFields.matching(currentTerm).createQuery()); } query = bool.createQuery(); FullTextQuery persistenceQuery = fullTextEntityManager.createFullTextQuery(query, Customer.class); resultList = persistenceQuery.getResultList();
public List<String> searchName(String name) { FullTextEntityManager fullTextEm = Search.getFullTextEntityManager( em ); Query luceneQuery = fullTextEm.getSearchFactory().buildQueryBuilder() .forEntity( RegisteredMember.class ).get() .keyword().onField( "name" ).matching( name ).createQuery(); List<?> resultList = fullTextEm.createFullTextQuery( luceneQuery ).setProjection( "name" ).getResultList(); List<String> names = new ArrayList<>( resultList.size() ); for ( Object projection : resultList ) { names.add( (String) ( ( (Object[]) projection )[0] ) ); } return names; }
public static <T> int nbDocumentsInIndex(EntityManagerFactory emf, Class<T> clazz) { FullTextEntityManager em = org.hibernate.search.jpa.Search.getFullTextEntityManager( emf.createEntityManager() ); QueryBuilder queryBuilder = em.getSearchFactory().buildQueryBuilder().forEntity( clazz ).get(); Query allQuery = queryBuilder.all().createQuery(); FullTextQuery fullTextQuery = em.createFullTextQuery( allQuery, clazz ); return fullTextQuery.getResultSize(); }
private int countBretzelsViaIndex(FullTextEntityManager em) { QueryBuilder queryBuilder = em.getSearchFactory().buildQueryBuilder().forEntity( Bretzel.class ).get(); Query allQuery = queryBuilder.all().createQuery(); FullTextQuery fullTextQuery = em.createFullTextQuery( allQuery, Bretzel.class ); return fullTextQuery.getResultSize(); } }
@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> 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(); }
@SuppressWarnings("unchecked") public List<Member> search(String name) { Query luceneQuery = em.getSearchFactory().buildQueryBuilder() .forEntity( Member.class ).get().keyword() .onField( "name" ).matching( name ) .createQuery(); return em.createFullTextQuery( luceneQuery ).getResultList(); }
private void purgeAll(Class<?>... entityTypes) throws Exception { FullTextEntityManager fullTextEm = Search.getFullTextEntityManager( createEntityManager() ); for ( Class<?> entityType : entityTypes ) { fullTextEm.purgeAll( entityType ); fullTextEm.flushToIndexes(); } int numDocs = fullTextEm.getSearchFactory().getIndexReaderAccessor().open( entityTypes ).numDocs(); fullTextEm.close(); assertThat( numDocs ).isEqualTo( 0 ); }
@SuppressWarnings("unchecked") public List<RegisteredMember> search(String name) { FullTextEntityManager fullTextEm = Search.getFullTextEntityManager( em ); Query luceneQuery = fullTextEm.getSearchFactory().buildQueryBuilder() .forEntity( RegisteredMember.class ).get() .keyword().onField( "name" ).matching( name ).createQuery(); return fullTextEm.createFullTextQuery( luceneQuery ).getResultList(); }
public List<Concert> findConcertsByArtist(String artist) { FullTextEntityManager fem = Search.getFullTextEntityManager( entityManager ); Query luceneQuery = fem.getSearchFactory().buildQueryBuilder() .forEntity( Concert.class ).get() .keyword().onField( "artist" ).matching( artist ) .createQuery(); @SuppressWarnings("unchecked") List<Concert> result = fem.createFullTextQuery( luceneQuery ).getResultList(); return result; }
@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(); }
private void startAndWaitMassIndexing(Class<?>... entityTypes) throws InterruptedException { FullTextEntityManager fullTextEm = Search.getFullTextEntityManager( createEntityManager() ); fullTextEm.createIndexer( entityTypes ).purgeAllOnStart( true ).startAndWait(); int numDocs = fullTextEm.getSearchFactory().getIndexReaderAccessor().open( entityTypes ).numDocs(); fullTextEm.close(); assertThat( numDocs ).isGreaterThan( 0 ); }