/** * 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); fullTextEntityManager.getSearchFactory() .buildQueryBuilder().forEntity(User.class).get(); fullTextEntityManager.createFullTextQuery(query, User.class); List<User> results = jpaQuery.getResultList();
/** * @param fullTextQuery * @param pageIndex * @param pageSize * @param maxResults * @return results page */ protected PageHandler getPage(FullTextQuery fullTextQuery, Integer pageIndex, Integer pageSize, Integer maxResults) { PageHandler page = new PageHandler(pageIndex, pageSize, fullTextQuery.getResultSize(), maxResults); if (CommonUtils.notEmpty(pageSize)) { fullTextQuery.setFirstResult(page.getFirstResult()).setMaxResults(page.getPageSize()); } page.setList(fullTextQuery.getResultList()); return page; }
public List<T> search(String searchTerm) throws SearchException { FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager); org.apache.lucene.search.Query qry; try { qry = HibernateSearchJpaTools.generateQuery(searchTerm, this.persistentClass, entityManager, defaultAnalyzer); } catch (ParseException ex) { throw new SearchException(ex); } org.hibernate.search.jpa.FullTextQuery hibQuery = fullTextEntityManager.createFullTextQuery(qry, this.persistentClass); // filter search results by owner.id value: // hibQuery.enableFullTextFilter("owned").setParameter("ownerId", owner.getId().toString()); return hibQuery.getResultList(); }
@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; }
if ("publishDate".equals(orderField)) { Sort sort = new Sort(new SortField("publishDate", SortField.Type.LONG, true)); query.setSort(sort); query.setProjection(projectionFields); query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
public void updateIndex(T entity){ FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(em); fullTextEntityManager.index(entity); fullTextEntityManager.getSearchFactory().optimize(entity.getClass()); }
public Object doInJpa(EntityManager em) throws PersistenceException { FullTextQuery fq = createSearchQuery(criteria, includeDisabled, em); fq.setHint("org.hibernate.cacheable", true); return fq.getResultSize(); }
if ("publishDate".equals(orderField)) { Sort sort = new Sort(new SortField("publishDate", SortField.Type.LONG, true)); query.setSort(sort);
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager); try { fullTextEntityManager.createIndexer().startAndWait(); } catch (InterruptedException e) { // Exception handling }
private List<Long> doSearch(String theResourceName, SearchParameterMap theParams, Long theReferencingPid) { FullTextEntityManager em = org.hibernate.search.jpa.Search.getFullTextEntityManager(myEntityManager); QueryBuilder qb = em.getSearchFactory().buildQueryBuilder().forEntity(ResourceTable.class).get(); BooleanJunction<?> bool = qb.bool(); FullTextQuery jpaQuery = em.createFullTextQuery(luceneQuery, ResourceTable.class); jpaQuery.setProjection("myId"); List<?> result = jpaQuery.getResultList();
/** * @param fullTextQuery * @param pageIndex * @param pageSize * @param maxResults * @return results page */ protected PageHandler getPage(FullTextQuery fullTextQuery, Integer pageIndex, Integer pageSize, Integer maxResults) { PageHandler page = new PageHandler(pageIndex, pageSize, fullTextQuery.getResultSize(), maxResults); if (CommonUtils.notEmpty(pageSize)) { fullTextQuery.setFirstResult(page.getFirstResult()).setMaxResults(page.getPageSize()); } page.setList(fullTextQuery.getResultList()); return page; }
public List<?> searchAllContacts() { FullTextEntityManager fullTextEntityManager = Search .getFullTextEntityManager( entityManager ); FullTextQuery query = fullTextEntityManager.createFullTextQuery( new MatchAllDocsQuery(), Singer.class ); return query.getResultList(); } }
if ("publishDate".equals(orderField)) { Sort sort = new Sort(new SortField("publishDate", SortField.Type.LONG, true)); query.setSort(sort); query.setProjection(projectionFields); query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
if ("publishDate".equals(orderField)) { Sort sort = new Sort(new SortField("publishDate", SortField.Type.LONG, true)); query.setSort(sort);
FullTextEntityManager em = org.hibernate.search.jpa.Search.getFullTextEntityManager(myEntityManager); QueryBuilder qb = em.getSearchFactory().buildQueryBuilder().forEntity(ResourceTable.class).get(); .createQuery(); FullTextQuery ftq = em.createFullTextQuery(query, ResourceTable.class); ftq.setProjection("myContentText"); ftq.setMaxResults(20); List<?> resultList = ftq.getResultList(); List<Suggestion> suggestions = Lists.newArrayList(); for (Object next : resultList) { Scorer scorer = new QueryScorer(textQuery); Highlighter highlighter = new Highlighter(formatter, scorer); Analyzer analyzer = em.getSearchFactory().getAnalyzer(ResourceTable.class);
FacetManager facetManager = fullTextQuery.getFacetManager(); for (String facetField : facetFields) { FacetingRequest facetingRequest = queryBuilder.facet().name(facetField + FACET_NAME_SUFFIX).onField(facetField) facetManager.enableFaceting(facetingRequest); FacetPageHandler page = new FacetPageHandler(pageIndex, pageSize, fullTextQuery.getResultSize(), maxResults); if (0 < page.getTotalCount()) { Set<String> facetSet = new LinkedHashSet<>(); page.setTotalCount(fullTextQuery.getResultSize(), maxResults); page.init(); fullTextQuery.setFirstResult(page.getFirstResult()).setMaxResults(page.getPageSize()); page.setList(fullTextQuery.getResultList()); return page;
@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(); } }
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(); FullTextQuery jpaQuery = em.createFullTextQuery(luceneQuery, TermConcept.class); int maxResult = 50000; jpaQuery.setMaxResults(maxResult); for (Object next : jpaQuery.getResultList()) { count.incrementAndGet(); TermConcept concept = (TermConcept) next;
FacetManager facetManager = fullTextQuery.getFacetManager(); for (String facetField : facetFields) { FacetingRequest facetingRequest = queryBuilder.facet().name(facetField + FACET_NAME_SUFFIX).onField(facetField) facetManager.enableFaceting(facetingRequest); FacetPageHandler page = new FacetPageHandler(pageIndex, pageSize, fullTextQuery.getResultSize(), maxResults); if (0 < page.getTotalCount()) { Set<String> facetSet = new LinkedHashSet<>(); page.setTotalCount(fullTextQuery.getResultSize(), maxResults); page.init(); fullTextQuery.setFirstResult(page.getFirstResult()).setMaxResults(page.getPageSize()); page.setList(fullTextQuery.getResultList()); return page;