开发者学堂课程【Java 面试疑难点串讲 3:开发工具及框架: Lucene】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/26/detail/554
Lucene
一个全文检索开发框架,它的主要的功能是提高检索性能,例如:在实际的互联网开发项目里面,如果现在要进行某些关键字的搜索,那么一定希望可以尽快的给出结论来了,而这样的搜索是不可能使用数据库来实现的,因为唯一可以用的方式就使用 LIKE 子句,而这种语句需要逐行扫描,所以性能是最差的。
于是在 2005 年的时候 Apache 推出 lucene 开发框架,这个开发框架本身设计很好,但是有一个问题出现了,就是中文不好(原因是没有中文分词器)。
分词器的概念非常好理解,例如:现在你需要搜索“中华人民共和国”,这个时候如果有了中文分词器,它会自动的进行文字的拆分,以上的内容可以拆分为:中华 人民 共和国 中华共和国 人民共和国 中国 民工 华人。如果没有中文分词器,这个的实现是不可能的,所以当时国内出现了一些国人的分词器,例如:庖丁解牛 .jar,但是它所支持的版本应该也就到 Lucene2.3 版本,后面新版本就不支持了。
对于 Lucene 如果要有更好的中文分词器(适合于新版本),那么就可以一直使用下去,该搜索主要是基于文件的模式完成的,在我们的文件里面会设置一系列的搜索的索引库,它是通过索引库进行的快速检索实现。