【问题标题】:HibernateSearch query休眠搜索查询
【发布时间】:2013-01-31 16:22:58
【问题描述】:

我是 hibernate Search 的新手,我发现很难形成 Hibernateserach 查询。 我需要使用 IN 运算符来 List the String in Hibernate query 。 谁能帮我解决这个问题。 我当前的查询如下所示

String querystring="country:"+profile.getCountry()+" AND religion:"+profile.getReligion()+"  AND caste:"+profile.getCaste()+" AND gender:"+profile.getGender()+"AND profession : "+professions+" AND age:["+profile.getFromage()+" TO "+profile.getToage()+"]" ;

这里的职业是一个字符串列表。

问候, 阿伦

【问题讨论】:

    标签: java hibernate lucene hibernate-search


    【解决方案1】:

    Lucene 查询语言中没有 IN 运算符。您必须自己扩展字符串。使用查询解析器的另一种方法是使用 Lucene BooleanQuery 并将查询的不同部分添加到其中,例如 RangeQuery 等。实际上 QueryParser 在这个较低级别的引擎盖会为您查询。查看 Lucene API 和 org.apache.lucene.search.Query 的不同子类。不过,您仍然必须自己扩展集合字符串。 最后但同样重要的是,您可以使用 Hibernate Search 查询 DSL。如果您想了解更多信息,请查看 Hibernate Search 的在线文档 - http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#search-query-querydsl

    【讨论】:

      【解决方案2】:

      您需要将以下子句添加到查询 SELECT、FROM 和 WHERE。条件也缺少部分。例如这里是一个有效的查询。 "SELECT e from Employee where e.country = :country and e.religion = :religion"...

      【讨论】:

      • 嗨曼努埃尔感谢您的回复。我正在创建一个 lucene 查询字符串。我只需要解析这些字符串,然后在内部 Lucene 查询将处理 select , from 子句我正在使用 HibernateSearch 完整的代码如下所示
      • 查询字符串适用于以下字符串 String querystring="country:"+profile.getCountry()+" AND宗教:"+profile.getReligion()+" AND caste:"+profile. getCaste()+" AND 性别:"+profile.getGender()+" AND age:["+profile.getFromage()+" TO "+profile.getToage()+"]" ;但是当我添加列表职业时它不起作用谢谢阿伦
      • 您可能想在您的问题中添加这是针对 lucene 的。我已将 lucene 标签添加到您的问题中
      猜你喜欢
      • 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
      相关资源
      最近更新 更多