我已经实现了Hibernate搜索,它运行正常。
因此,如果我想让所有员工都与船长匹配,我会使用以下代码
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 search是否提供了任何方法来执行此操作。
例如,如果我想从一个名称与以下列表中的任何一个相似的表中获得员工[Abhi,Juhi,Joan,Paul,James]
答案 0 :(得分:3)
要在同一字段中搜索多个可能的单词,只需将它们全部添加到匹配的子句中即可。
//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