全文检索中的相关技术探讨

要做好一个全文检索的功能,并没有我们想象的这么简单,就我自己做的一个小应用举例来说明其中的技术要点与实现:

  1. 首先是找到全文检索的开源包,毫无疑问,首选lucene,这部分实现难度不大,其中jforum里的源码就提供了这种实现方式的绝佳教材,里面可配置一系列有关lucene和搜索相关的参数信息,推荐大家看jforum关于全文检索的源码!
  2. 找到一个好的中文分词算法,索引应该以词为单位,这会给你带来很好好处,可使用庖丁解牛中文分词或中科院分词算法(开源的好像不支持自定义词典)。
  3. 别字纠正,拼音纠正,当用户搜索“pinguo”,能自动搜索出关于苹果的记录,或用户输入常见错别字时,系统应也能自动纠正,这个不清楚怎么做,莫非也建词典?
  4. 给出搜索建议是一个好的用户体验
  5. 搜索词加亮是一个好的用户体验
  6. 搜索结果展现的summary应该也有一个好的算法支持,这个好像lucene自带的有。
  7. 建索引的考虑,是实时的还是定时批量的,要根据业务需求来定

以下是我的拙作,只是处理了1,2条,其他还需完善:http://so.faqee.com/

 

注:实现源码主要来自jforum,中文分词使用的是中科院那个版本,欢迎有相关经验的朋友一起探讨!

你可能感兴趣的:(算法,Lucene,全文检索)