现在好多网站需要在搜索结果上进行分类统计,比如招聘网站需要统计出某一关键词下的满足本科的有多少岗位、满足专科的有多少岗位、满足4000-6000薪资的多少岗位等等,这就需要对搜索结果进行分类统计了。但现在一直没有发现有人在lucene上很好的实现这个功能,呵呵,可能是大牛们没有时间研究这个吧。
我在分析了Lucene的源码的基础上开发出了这个功能,因牵扯到公司机密无法透露具体代码,但可以给大家共享一下原理和思路,供大家参加,也许还有更好的方法实现。
思路:我们可以参照lucene里面的排序原理来对lucene的源码进行重构,我们都知道lucene是可以按照不同的字段进行排序的,排序用的字段从哪里来呢?如果我们可以访问到排序的字段是否就可以访问到分类统计的字段呢。访问到分类统计的字段,剩下的工作的就很简单了对吧。大家可以看看Lucene的TopDocCollector类源码,然后再自己实现HitCollector这个抽象类就可以啦,不知道说明白了吗?希望对大家有帮助。