2015-12-08 3 views
0

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

Мне нужно вернуть все строки, в том числе уже существующие в таблице, что мне нужно добавить, чтобы получить его?

это раздел кода я использую для запроса

// get the full text entity manager 
    FullTextEntityManager fullTextEntityManager=Search.getFullTextEntityManager(entityManager); 

    //create query using hibernate query DSL 
    QueryBuilder queryBuilder=fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Entity.class).get(); 

    // actual query 
    Query query=queryBuilder.keyword() 
      .onFields("col1","col2","col3") 
      .matching(searchKeyword) 
      .createQuery(); 

    //wrap Lucene query in hibernate query object 
    FullTextQuery jpaQuery=fullTextEntityManager.createFullTextQuery(query, Entity.class); 

    return jpaQuery.getResultList(); 

ответ

3

Вам нужно запустить mass indexer, чтобы добавить все эти объекты к индексу, которые были добавлены/обновлены, а Hibernate Search не было (пока) включен.

Это позволит получить все сущности из базы данных и обновить соответствующий индекс (ы). В его простейшей форме это делается так:

fullTextEntityManager 
    .createIndexer(Entity.class) 
    .startAndWait(); 

В справочном руководстве описаны все возможности тонкой настройки в деталях.

+0

спасибо, тот сработал. я думаю, я должен был RTFM :) – austin

+0

спасибо добрый сэр – Boldbayar