Package org.hibernate.search.jpa

Examples of org.hibernate.search.jpa.FullTextEntityManager


        purgeLuceneIndexes();
        // TODO probably should delete cache as well
    }

    private void purgeLuceneIndexes() {
        FullTextEntityManager em =
                Search.getFullTextEntityManager(
                        entityManagerFactory.createEntityManager());
        try {
            em.purgeAll(HAccount.class);
            em.purgeAll(HGlossaryEntry.class);
            em.purgeAll(HGlossaryTerm.class);
            em.purgeAll(HProject.class);
            em.purgeAll(HProjectIteration.class);
            em.purgeAll(TransMemoryUnit.class);
            em.purgeAll(HTextFlowTarget.class);
        } finally {
            em.close();
        }
    }
View Full Code Here


  public int countSearchByName(String searchTerm) {
    return getSearchByNameQuery(searchTerm).getResultSize();
  }
 
  private FullTextQuery getSearchByNameQuery(String searchTerm) {
    FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(getEntityManager());
   
    QueryBuilder projectQueryBuilder = fullTextEntityManager.getSearchFactory().buildQueryBuilder()
        .forEntity(Project.class).get();
   
    BooleanJunction<?> booleanJunction = projectQueryBuilder.bool();
    if (StringUtils.hasText(searchTerm)) {
      booleanJunction.must(projectQueryBuilder
          .keyword()
          .fuzzy().withPrefixLength(1).withThreshold(0.8F)
          .onField(Binding.project().name().getPath())
          .matching(searchTerm)
          .createQuery());
    } else {
      booleanJunction.must(projectQueryBuilder.all().createQuery());
    }
   
    return fullTextEntityManager.createFullTextQuery(booleanJunction.createQuery(), Project.class);
  }
View Full Code Here

  public int countSearchByName(String searchTerm, ArtifactDeprecationStatus deprecation) {
    return getSearchByNameQuery(searchTerm, deprecation).getResultSize();
  }
 
  private FullTextQuery getSearchByNameQuery(String searchTerm, ArtifactDeprecationStatus deprecation) {
    FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(getEntityManager());
   
    QueryBuilder artifactQueryBuilder = fullTextEntityManager.getSearchFactory().buildQueryBuilder()
        .forEntity(Artifact.class).get();
   
    BooleanJunction<?> booleanJunction = artifactQueryBuilder.bool();

    if (deprecation != null) {
      booleanJunction.must(artifactQueryBuilder
          .keyword()
          .onField(Binding.artifact().deprecationStatus().getPath())
          .matching(deprecation)
          .createQuery());
    }
   
    if (StringUtils.hasText(searchTerm)) {
      booleanJunction.must(artifactQueryBuilder
          .keyword()
          .fuzzy().withPrefixLength(1).withThreshold(0.8F)
          .onField(Binding.artifact().artifactId().getPath())
          .andField(Binding.artifact().group().groupId().getPath())
          .matching(searchTerm)
          .createQuery());
    } else {
      booleanJunction.must(artifactQueryBuilder.all().createQuery());
    }
   
    return fullTextEntityManager.createFullTextQuery(booleanJunction.createQuery(), Artifact.class);
  }
View Full Code Here

 
  private FullTextQuery getSearchRecommendedQuery(String searchTerm) throws ServiceException {
    if (!StringUtils.hasText(searchTerm)) {
      return null;
    }
    FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(getEntityManager());
   
    QueryBuilder artifactQueryBuilder = fullTextEntityManager.getSearchFactory().buildQueryBuilder()
        .forEntity(Artifact.class).get();
   
    BooleanJunction<?> booleanJunction = artifactQueryBuilder.bool();
   
    booleanJunction.must(artifactQueryBuilder
        .keyword()
        .onField(Binding.artifact().deprecationStatus().getPath())
        .matching(ArtifactDeprecationStatus.NORMAL)
        .createQuery());
   
    try {
      searchTerm = LuceneUtils.getSimilarityQuery(searchTerm, 0.8F);
      String[] fields = new String[] {
          Binding.artifact().artifactId().getPath(),
          Binding.artifact().group().groupId().getPath()
      };
      Analyzer analyzer = Search.getFullTextEntityManager(getEntityManager()).getSearchFactory().getAnalyzer(Artifact.class);
     
      MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_36, fields, analyzer);
      parser.setDefaultOperator(MultiFieldQueryParser.AND_OPERATOR);

      BooleanQuery booleanQuery = new BooleanQuery();
      booleanQuery.add(parser.parse(searchTerm), BooleanClause.Occur.MUST);
     
      booleanJunction.must(booleanQuery);
    } catch (ParseException e) {
      throw new ServiceException(String.format("Error parsing request: %1$s", searchTerm), e);
    }
   
    return fullTextEntityManager.createFullTextQuery(booleanJunction.createQuery(), Artifact.class);
  }
View Full Code Here

  public int countSearch(String searchTerm) {
    return getSearchQuery(searchTerm).getResultSize();
  }
 
  private FullTextQuery getSearchQuery(String searchTerm) {
    FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(getEntityManager());
   
    QueryBuilder userQueryBuilder = fullTextEntityManager.getSearchFactory().buildQueryBuilder()
        .forEntity(User.class).get();
   
    BooleanJunction<?> booleanJunction = userQueryBuilder.bool();
   
    if (StringUtils.hasText(searchTerm)) {
      booleanJunction.must(userQueryBuilder
          .keyword()
          .fuzzy().withPrefixLength(1).withThreshold(0.8F)
          .onField(Binding.user().userName().getPath())
          .andField(Binding.user().fullName().getPath())
          .matching(searchTerm)
          .createQuery());
    } else {
      booleanJunction.must(userQueryBuilder.all().createQuery());
    }
   
    return fullTextEntityManager.createFullTextQuery(booleanJunction.createQuery(), User.class);
  }
View Full Code Here

  public void index()
  {
    try
    {
      FullTextEntityManager ftem = Search.getFullTextEntityManager(this.em);
      ftem.createIndexer().startAndWait();
    }
    catch (InterruptedException e)
    {
      e.printStackTrace();
    }
View Full Code Here

    }
  }

  public <E extends Entity> List<E> search(Class<E> entityClass, String fieldList, String searchString)
  {
    FullTextEntityManager ftem = Search.getFullTextEntityManager(this.em);
    QueryBuilder qb = ftem.getSearchFactory().buildQueryBuilder().forEntity(entityClass).get();
    org.apache.lucene.search.Query query = qb.keyword().onFields(fieldList).matching(searchString).createQuery();
    javax.persistence.Query persistenceQuery = ftem.createFullTextQuery(query, entityClass);
    @SuppressWarnings("unchecked")
    List<E> result = persistenceQuery.getResultList();
    return result;
  }
View Full Code Here

    return entityManager;
  }

  @Transactional
  public void indexAllObjects() {
    FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(getEntityManager());
    try {
      fullTextEntityManager.createIndexer().startAndWait();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

  }
View Full Code Here

   * core object search methods - takes a string for field name to be queried
   * and the searchterm
   */

  private List<Activity> searchQuestions(String fields, String searchTerm) {
    FullTextEntityManager fullTextEntityManager = org.hibernate.search.jpa.Search.getFullTextEntityManager(getEntityManager());
    QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Question.class).get();
    org.apache.lucene.search.Query query = qb.keyword().onFields(fields).matching(searchTerm).createQuery();
    javax.persistence.Query persistenceQuery = fullTextEntityManager.createFullTextQuery(query, Question.class);
    persistenceQuery.setMaxResults(10);
    return (List<Activity>) persistenceQuery.getResultList();
  }
View Full Code Here

    persistenceQuery.setMaxResults(10);
    return (List<Activity>) persistenceQuery.getResultList();
  }

  private List<Activity> searchWorkTasks(String fields, String searchTerm) {
    FullTextEntityManager fullTextEntityManager = org.hibernate.search.jpa.Search.getFullTextEntityManager(getEntityManager());
    QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(WorkTask.class).get();
    org.apache.lucene.search.Query query = qb.keyword().onFields(fields).matching(searchTerm).createQuery();
    javax.persistence.Query persistenceQuery = fullTextEntityManager.createFullTextQuery(query, WorkTask.class);
    persistenceQuery.setMaxResults(10);
    return (List<Activity>) persistenceQuery.getResultList();
  }
View Full Code Here

TOP

Related Classes of org.hibernate.search.jpa.FullTextEntityManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.