【问题标题】:Provide a List of values as search Criteria in Hibernate Search在 Hibernate Search 中提供值列表作为搜索条件
【发布时间】:2014-10-08 13:40:56
【问题描述】:

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

我的问题是如果我想传递一个值列表作为搜索条件,休眠搜索是否提供任何方法来做到这一点。

例如,如果我想从名称与以下列表 [Abhi,Juhi,Joan,Paul,James] 中的任一名称相似的表中获取员工

【问题讨论】:

    标签: java hibernate jpa hibernate-search


    【解决方案1】:

    要在同一字段中搜索多个可能的单词,只需将它们全部添加到匹配子句中即可。

    //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

    【讨论】:

    • 我猜我们也可以进行匹配多个值的模糊和通配符搜索,对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多