在Hibernate Search中提供值列表作为搜索条件

时间:2014-10-08 13:40:57

标签: java hibernate jpa hibernate-search

我已经实现了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]

1 个答案:

答案 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