Lucene是一个纯java实现的,高可用、高性能的全文检索库。受益于Lucene优秀的设计,我们可以轻松地将全文检索功能应用到带有Spring框架(当然,没有Spring也是可以的)的web项目中。
在万能的Spring眼里,一切皆bean。我们的全文检索模块(后文中我可能会简称为检索模块)也不例外。首先附上我们这个项目的逻辑结构:
Spring集成Lucene3.5
从上图中我们不难看出,就Spring集成Lucene(或者是说,把Lucene全文检索功能加入到一个web项目)本身,没有任何技术上难点。不过由于Lucene对索引文件采用的是度共享,单线程写的策略,我们在维护Lucene索引文件是应当着重考量。下面列出了我认为为web应用构建Lucene全文检索所应当注意的地方。
上面列出的只是一个简单
- 写互斥
- 创建IndexSearcher的代价很高
- 近实时搜索
- 其它