我已经实现了 Hibernate 搜索并且工作正常。
所以如果我说想让所有员工匹配 Captain ,我使用以下代码
QueryBuilder qb = fullTextEntityManager.getSearchFactory()
.buildQueryBuilder().forEntity(Employee.class).get();
org.apache.lucene.search.Query query = qb.keyword().onFields("name")
.matching("Captain").createQuery();
// wrap Lucene query in a javax.persistence.Query
javax.persistence.Query persistenceQuery = fullTextEntityManager
.createFullTextQuery(query, Employee.class);
// execute search
List<Employee> result = persistenceQuery.getResultList();
System.out.println("num of employess:" + result);
我的问题是,如果我想传递一个值列表作为搜索条件, hibernate 搜索是否提供任何方法来做到这一点。
例如,如果我想从一个表中获取姓名与以下列表中的任一姓名相似的员工 [Abhi,Juhi,Joan,Paul,James]
最佳答案
要在同一字段中搜索多个可能的单词,只需将它们全部添加到匹配子句中即可。
//search document with storm or lightning in their history
Query luceneQuery =
mythQB.keyword().onField("history").matching("storm lightning").createQuery();
检查文档
http://docs.jboss.org/hibernate/search/4.1/reference/en-US/html/search-query.html
关于java - 提供值列表作为 Hibernate 搜索中的搜索条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26258417/