/** * Create an initial Lucene index for the data already present in the * database. * This method is called when Spring's startup. */ @Override public void onApplicationEvent(final ApplicationReadyEvent event) { try { FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager); fullTextEntityManager.createIndexer().startAndWait(); } catch (InterruptedException e) { System.out.println( "An error occurred trying to build the serach index: " + e.toString()); } return; }
getFullTextEntityManager(entityManager);
@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; }
FullTextEntityManager em = org.hibernate.search.jpa.Search.getFullTextEntityManager(myEntityManager);
if (cs != null) { 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();
private List<Long> doSearch(String theResourceName, SearchParameterMap theParams, Long theReferencingPid) { FullTextEntityManager em = org.hibernate.search.jpa.Search.getFullTextEntityManager(myEntityManager);
/** * Flush search indexes, to be done after a reindex() or reindexAll() operation */ @Autowired public void flushSearchIndexes(ApplicationContext applicationContext) { EntityManagerFactory entityManagerFactory = (EntityManagerFactory) applicationContext.getBean("entityManagerFactory"); FullTextEntityManager fullTextEntityMgr = Search.getFullTextEntityManager(entityManagerFactory.createEntityManager()); fullTextEntityMgr.flushToIndexes(); } }
@Produces private FullTextEntityManager getFullTextEntityManager() { return Search.getFullTextEntityManager( em ); } }
@Produces private FullTextEntityManager getFullTextEntityManager() { return Search.getFullTextEntityManager( em ); } }
public void rollbackedRegister() throws Exception { em.persist( newMember ); resetNewMember(); em.flush(); // force to flush the backend to send the JMS messages into the queue Search.getFullTextEntityManager( em ).flushToIndexes(); throw new RuntimeException( "Shit happens" ); }
@SuppressWarnings("unchecked") private List<Book> search(String searchQuery) throws ParseException { QueryParser parser = new MultiFieldQueryParser( new String[] { }, new StandardAnalyzer() ); FullTextQuery query = Search.getFullTextEntityManager( entityManager ) .createFullTextQuery( parser.parse( searchQuery ), Book.class ); return (List<Book>) query.getResultList(); } }
public List<?> searchAllContacts() { FullTextEntityManager fullTextEntityManager = Search .getFullTextEntityManager( entityManager ); FullTextQuery query = fullTextEntityManager.createFullTextQuery( new MatchAllDocsQuery(), Singer.class ); return query.getResultList(); } }
@Before @Override public void setUp() { super.setUp(); em = Search.getFullTextEntityManager( factory.createEntityManager() ); em.getTransaction().begin(); bretzel = new Bretzel( 23, 34 ); em.persist( bretzel ); em.getTransaction().commit(); em.clear(); }
@SuppressWarnings("unchecked") public List<Message> findMessagesFor(Date date) { FullTextEntityManager ftem = Search.getFullTextEntityManager( em ); Date dateDay = DateTools.round( date, DateTools.Resolution.DAY ); NumericRangeQuery<Long> numericRangeQuery = NumericRangeQuery.newLongRange( "date", dateDay.getTime(), dateDay.getTime(), true, true ); BooleanQuery booleanQuery = ( new BooleanQuery.Builder() ) .add( numericRangeQuery, BooleanClause.Occur.MUST ) .build(); return ftem.createFullTextQuery( booleanQuery, Message.class ) .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(); }
@Before public void setup() { entityManager = Search.getFullTextEntityManager( factory.createEntityManager() ); Session session = entityManager.unwrap( Session.class ); fullTextSession = org.hibernate.search.Search.getFullTextSession( session ); QueryBuilder builder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity( Foo.class ).get(); luceneQuery = builder.keyword() .onField( "fubar" ) .matching( "snafu" ) .createQuery(); }
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; }