java - 提供值列表作为 Hibernate 搜索中的搜索条件

标签 java hibernate jpa hibernate-search

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

相关文章:

java - 如何使用泛型类型注释 hibernate 集合?

mysql - 在 Play 框架中持久保存 JPA 实体的最佳方式

mysql - 使用乐观锁定检查 JPA 2 中提交时读取集的版本

mysql - 使用 EntityManager 刷新时实体继承出错

java - Android 图形 - 拖动位图时清除 Canvas

java - 在这种情况下我应该使用什么布局?

java - Hibernate:将基类的实例更改为子类

java - Netbeans 不会在调试器中拾取 Java 类

java - zuul代理总是给出401未经授权

java - 嵌套异常是 org.hibernate.exception.SQLGrammarException : could not extract ResultSet Hibernate+SpringMVC