0
我不太確定這可能是多麼牽扯,但有人可以幫助我解決以下問題。Hibenate在多個字段中搜索DSL和Lucene查詢
我試圖在我的項目中實現搜索功能,基於員工firt和姓氏。爲此,我使用了Spring Data REST和Hibernate Search。
@Transactional
public search(String searchText) {
FullTextEntityManager fullTextEntityManager = org.hibernate.search.jpa.Search
.getFullTextEntityManager(entityManager);
QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Employee.class).get();
org.apache.lucene.search.Query luceneQuery = qb.keyword().wildcard()
.onFields("firstName", "middleName", "lastName").matching(searchText + "*").createQuery();
javax.persistence.Query jpaQuery = fullTextEntityManager.createFullTextQuery(luceneQuery, Employee.class);
List result = jpaQuery.getResultList();
List<EmployeeSearchDTO> listOfDTO = new ArrayList<>();
EmployeeSearchDTO employeeDTO;
Iterator<Employee> itr = result.iterator();
while (itr.hasNext()) {
Employee employee = itr.next();
employeeDTO = new EmployeeSearchDTO(employee);
listOfDTO.add(employeeDTO);
}
}
當我搜索「李四」我所期望的結果應符合以下兩個
姓:約翰名字:李四
姓:喬納森名字:李四
但事實並非如此,我只能根據FirstName [「john」]或LastName [「doe」]進行搜索,但不能同時使用。
如何解決這個問題,任何指針將不勝感激。提前致謝。
我GOOGLE了這個,並仍在工作[但如果我可以得到一個definitve響應張貼在這裏] –