Map rmap = new LinkedHashMap()
try {
SolrServer server = getSolrServer()//getSolrServer() 方法就是返回一个CommonsHttpSolrServer
SolrQuery query = new SolrQuery()
if(qStr!=null&&qStr.length()>0)
query.setQuery(qStr)
else
query.setQuery("*:*")//如果没有查询语句,必须这么写,否则会报异常
query.setIncludeScore(false)//是否按每组数量高低排序
query.setFacet(true)//是否分组查询
query.setRows(0)//设置返回结果条数,如果你时分组查询,你就设置为0
query.addFacetField(groupField)//增加分组字段
query.setFacetSort(true)//分组是否排序
query.setFacetLimit(pageSize)//限制每次返回结果数
query.setSortField(sortField,asc SolrQuery.ORDER.asc :SolrQuery.ORDER.desc )//分组排序字段
query.set(FacetParams.FACET_OFFSET,(pageNum-1)*pageSize)//当前结果起始位置
QueryResponse rsp = server.query( query )
List countList = rsp.getFacetField(groupField).getValues()
List returnList = new ArrayList()
if(pageNum*pageSize0)
rmap.put(count.getName(),(int) count.getCount())
}
} catch (Exception e) {
e.printStackTrace()
}
return rmap
}
首先,updatetime靠前,这个比较容易sort=updatetime desc其次,标题匹配靠前,如果改动较小的情况下,只要在搜索的时候增加title字段的权重即可,如果想绝对的靠前,那么需要对lucene的相似度打分公式进行相应的修改
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)