NPE, докато създавате org.apache.lucene.search.Query

Исках да направя пълнотекстово търсене чрез моето приложение Spring Boot с помощта на Hibernate Search. Но се сблъсках с такъв проблем: NPE при създаване на org.apache.lucene.search.Query.

Ето моят код

@Repository
public class HibernateSearch {

    @PersistenceContext
    private EntityManager entityManager;

    @Transactional
    public List<Manual> fulltextSearching(String keyword){

        FullTextEntityManager fullTextEntityManager =
                org.hibernate.search.jpa.Search.getFullTextEntityManager(entityManager);

        QueryBuilder qb = fullTextEntityManager.getSearchFactory()
                .buildQueryBuilder().forEntity(Manual.class).get();
        org.apache.lucene.search.Query luceneQuery = qb
                .keyword()
                .onFields("name")
                .matching(keyword)
                .createQuery();

        javax.persistence.Query jpaQuery =
                fullTextEntityManager.createFullTextQuery(luceneQuery, Manual.class);

        @SuppressWarnings("unchecked")
        List<Manual> result =  jpaQuery.getResultList();

        return result;
    }
} 

Среща се на тази линия

org.apache.lucene.search.Query luceneQuery = qb
            .keyword()
            .onFields("name")
            .matching(keyword)
            .createQuery();

Моят обект:

@Entity
@Table(name = "manual")
@Getter
@Setter
@NoArgsConstructor
@Indexed
public class Manual {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "manual_id")
    private Long id;

    @NotNull
    @Column(name = "manual_name")
    @Field
    private String name;
}

Моите имоти:

spring.jpa.properties.hibernate.search.default.directory_provider = filesystem
spring.jpa.properties.hibernate.search.default.indexBase = D:\\Java

spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

Моите зависимости на Maven:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-search-orm</artifactId>
    <version>5.7.1.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
</dependency>

РЕДАКТИРАНЕ

Намерено решение. Причината беше, че предавам нулев низ в метода за търсене в пълен текст


person Andrey-2310    schedule 26.07.2017    source източник
comment
Споделете проследяването на стека си, моля   -  person Eugene Ustimenko    schedule 26.07.2017
comment
Намерено е решение @EugeneUstimenko, благодаря   -  person Andrey-2310    schedule 26.07.2017