2016-06-07 7 views
1

я настроил в спящий режим с помощью следующей зависимости MavenHibernate Search 5.5.3 final не запрашивает результаты индексированных данных?

 <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>5.1.0.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>5.1.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-search-orm</artifactId> 
     <version>5.5.3.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
     <version>1.7.2.RELEASE</version> 
    </dependency> 


    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>${mysql.driver.version}</version> 
    </dependency> 

У меня есть настроить Hibernate с индексацией с помощью этот кусок кода

jpaProperties.put("hibernate.search.default.directory_provide","filesystem"); 
    jpaProperties.put("hibernate.search.default.indexBase","C:\\Index"); 

Это код, который я бегу

public List<Deals> findDealBySubcatIdhsearch(long subCatId,String search){ 
    //Option or suboption may be included in future, if needed 
    logger.info("Deal nameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"+search+"iiiiiiiiiiid"+subCatId); 

    FullTextEntityManager fullTextEntityManager = org.hibernate.search.jpa.Search. 
       getFullTextEntityManager(em); 
    QueryBuilder qb = fullTextEntityManager.getSearchFactory() 
    .buildQueryBuilder().forEntity(Deals.class).get(); 
    org.apache.lucene.search.Query query = qb 
    .keyword().wildcard().onFields("dealName").matching("*"+search.toLowerCase()+"*") 
    .createQuery(); 

    org.hibernate.search.jpa.FullTextQuery jpaQueryy = 
     fullTextEntityManager.createFullTextQuery(query, Deals.class); 

//jpaQueryy.enableFullTextFilter("category").setParameter("categoryId", 1); 
    List<Deals> results = jpaQueryy.getResultList(); 


        logger.info("hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"+jpaQueryy.getResultSize()+"Subid"+subCatId); 
        if(jpaQueryy.getResultList().size()==0) 
        { 
          query = qb 
           .keyword().onFields("dealName").matching("*"+search.toLowerCase()+"*") 
           .createQuery(); 

           jpaQueryy = 
            fullTextEntityManager.createFullTextQuery(query, Deals.class); 

           results = jpaQueryy.getResultList(); 
        } 
        List<Deals> output = 
          results.parallelStream() 
           .filter(d -> d.getSubcategories().getSubcategoryId() == subCatId) 
           .collect(Collectors.toList()); 

    return output; 
} 

Ниже представлены мои классы моделей

@Entity 
@Indexed 
@Table(name = "deals") 
public class Deal 
{ 

@Id 
@Basic(optional = false) 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Column(name = "deal_id") 
private Long dealId; 

@Column(name = "deal_name") 
@Field(index=Index.YES, analyze=Analyze.YES, store=Store.NO) 
private String dealName; 
} 

DealOptions

@Entity 
@Indexed 
@Table(name = "dealoptions") 
public class DealOptions 
{ 

@Id 
@Basic(optional = false) 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Column(name = "option_id") 
private Long optionId; 

@Column(name = "name") 
@Field(index=Index.YES, analyze=Analyze.YES, store=Store.NO) 
private String Name; 


} 

Но когда я упорствовать объект поиска данных Hibernate индексируется, но спящий режим поиска не получать детали сохранялись object.There нет ошибки в console.What является ошибкой?

+0

Что вы подразумеваете под словом "not fetchching"? Вы выполняете запрос, но не видите ожидаемых результатов? Это поможет увидеть код, который вы используете, и результат, который вы ожидаете от него. – Gunnar

+0

@ Gunnar Hibernate Search не получает информацию о сохраняемом объекте – briantaurostack7

ответ

1

Наконец-то я обнаружил, что ошибка заключалась в том, что параметр dealname, который я использовал для поиска в спящем режиме, имел нулевые значения из-за того, что он не получил результат.

 Смежные вопросы

  • Нет связанных вопросов^_^