解决方案 »
- 求救大虾!!!java执行vbs怎么得到返回结果
- 奇怪的问题
- jsp页面上用js导出excel出错
- Tomcat为何卡住??
- 主题:用spring作后台框架,用.net的winform作前台可行性探讨
- ireport+spring的 问题在线等
- 如何用java应用程序获取cpu的利用率和内存的使用率还有根据文件系统名称 取得某个文件系统的空间利用率取得某个进程是否存在
- 一个简单的实体Bean的客户端连接不上的问题(JBoss Eclipse IDE)
- WEBLOGIC7的数据库连接池使用应该注意些什么???
- struts中的JSP如何向Action中传递参数
- 有个异步的操作结果需要做成同步的结果,路过的给个解决思路吧
- Hibernate学习,版本选择选择问题
在组合查询中把取出所有的查询操作放在must中,把要根据关键字排序的条件放在should中,这样返回的结果集就是一个全部的结果,但是由于有should的约束,所以结果集会按照关键字的相关度进行排序(lucene默认的关键字搜索就是按关键字的相关度排序)
这样,我们就可以得到一个按照给定关键字相关度排序的所有的结果的集合。
这就是思路,代码如下: QueryBuilder queryBuilder = fullTextSession.getSearchFactory()
.buildQueryBuilder().forEntity( SearchUser.class ).get();
luceneQuery = queryBuilder
.bool()
.must(
queryBuilder
.all()
.createQuery()
)
.should(
queryBuilder
.keyword()
.onFields("searchIndex")
.matching(queryStr)
.createQuery()
).should(
queryBuilder
.keyword()
.wildcard()
.onField("searchIndex")
.matching(queryStr+"*")
.createQuery()
)
.createQuery();
然后剩下的事情就是调用hibernate search的查询API了