Hibernate Search 如何扩大搜索结果 hibernate searchhibernatelucene 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好吧,经过一段时间的调查,我自己把问题解决了,说起来解决办法也不是很难,思路就是用lucene的组合查询,在组合查询中把取出所有的查询操作放在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了 structs2入门问题 用struts的role做细粒度的权限控制系统 考考大家Java的开发水平 高手请回:hibernate-one to many and one-to-one的问题 急!急!!急!!! 关于spring中使用JavaMailSenderImpl的错误 JNDI会导致内存溢出?如果是,为什么? apache和tomcat的整合意义何在 hibernate新问题,在线等。 请问关于EJB与JAVABEAN的关系 3天了也没一点进展,帮帮忙吧! 有个异步的操作结果需要做成同步的结果,路过的给个解决思路吧 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了