原文发布在http://paomadeng.javaeye.com/blog/125838
OSPod.Forum希望能够成为跨数据库的应用产品,因此在全文检索的技术方案上没有选择数据库的全文检索方案,毕竟象MySQL这样的开源数据库或者HSQL这样的袖珍数据要集成全文检索功能还是比较麻烦的。因此通过分析,我们选择了lucene作为全文检索的支持。
在使用Lucene的过程中,比较难选择的就是分析器。选择Lucene自带的CJKAnalyer?ChineseAnalyer?StandardAnalyer?还是使用带有中文分词的分析器?
选型评判目标:
1.支持多语言
2.性能如何
3.是结果越多越好?还是把结果缩小在最小范围?
结论:
1.CJKAnalyer实现非常不错,对中、日、韩支持不错,支持部分中文分词(双字),但是不支持3个以上汉字词组的搜索。
2.ChineseAnalyer不支持中文分词。
3.StandardAnalyer,不支持中文分词,在多语言方面支持不错。
4.中文分词,的确搜索结果精确了,但是在词库方面要求很全面,性能方面、智能化方面都有比较高的要求。可是这是用户需要的结果吗?
参考百度、Google等大家,最后决定论坛产品是非专业产品,因此搜索出尽可能多的合理结果才是最重要的,因此决定选择StandardAnalyer作为分析器。
仅代表个人意见,欢迎大家批评指正。