Hibernate搜索查询

时间:2013-01-31 16:22:59

标签: java hibernate lucene hibernate-search

我是hibernate Search的新手,我发现很难形成Hibernateserach查询。 我需要使用IN opeartor来查看Hibernate查询中的String。 任何人都可以帮我解决这个问题。 我当前的查询看起来像这样

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()+"]" ;

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

此致 阿伦

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

您需要将以下子句添加到查询SELECT,FROM和WHERE中。条件也缺少部分。例如,这是一个有效的查询。 “从员工中选择e,其中e.country =:country和e.religion =:religion”......