Lucene分类解决办法
在做一个水利目录的时候遇到一个问题, 就是要对搜索出来的信息进行分类。比如下面的几条Document.
d1 (title:长江水文信息;sort:长江)
d2 (title:黄河水文信息;sort:黄河)
d3 (title:长江地质信息;sort:长江)
d4 (title:黄河地质信息;sort:黄河)
按照sort的内容进行分类,那么得出结果就是d1,d3是属于长江这个分类,而d2,d4是属于黄河。
在Lucene中是没有提供分类的方法的,只有通过遍历的方法或者修改源代码。如果使用遍历的方法,那么如果有上万条数据,就需要把这上万条数据都读入内存,然后遍历,这在时间和空间上都不允许。若修改代码,我试过网上的提供的几种方法,个人感觉还是对搜索结果进行遍历,一般搜索结果在千级单位效果还差强人意,但是如果搜索结果为十万条的时候就要等十几秒(在自己的笔记本电脑上进行测试的)。后来在网上搜索了下,有个bobo-browse插件,集成到项目里去进行了试验,效果很好。下面就介绍下bobo-browse的使用方法。
bobo-browse是在jdk1.5下编译的,当时做项目是用的jdk1.4,1.4和1.5差别最大的就是泛型,所以如果想在jdk1.4下使用bobo-browse,得将bobo-browse从1.5转化到1.4。
转化的工具也是相当多。
先去吃饭 有空再写。^_^