lucene学习
搜索功能的实现有两种方法:
其一是使用数据库的like进行模糊查询,其二是使用全文索引lucene
lucene与数据库like语句相比的优点
本项目使用全文索lucene完成产品搜索功能,lucene的优点如下:
1. 在数据量比较大,查询字段比较多的情况下,如果采用数据库like SQL查询,性能比较差,而采用lucene来查询性能相对like sql语句查询好些。
2. 如果采用lucene进行搜索,搜索到的结果相关度比较高,而且把匹配度高的记录排在最前面;而数据库的like语句查询只会查询出含有关键字的记录,其内容相关度不高,并且不能实现匹配度高的记录排在最前面的效果。
3. 使用luence进行搜索,能够对查询的结果进行高亮显示,而数据库的like语名查询出来必须在页面中使用javascript等脚本语言进行高亮显示处理,才能实现高亮显示。
lucene的简介
使用lucene分为两步:1,建立索引,2,查询索引
建立索引和查询索引时都会用到分词技术,常用的分词原理有:
1. 一元分词:一个词一个词的分
2. 二元分词:两个词两个词的分
3. 字典分词:这是一种匹配度最高的分词技术,效果最,使用字典分词必须要建立字典,目前使用最多的中文分词器是一个网友写的paoding (庖丁解牛分词器)
本项目使用luence完成商品搜索功能, 但不直接使用 Lucene的API而是使用了Compass的API. Compass对Lucene的API进行了封装.
为什么使用Compass的API而不直接使用Lucene的API的原因跟,使用hibernate而不使用JDBC的原因是一样的.
做软件时一直强调面向对象的思想,我们要操作数据库就使用面向对象的hibernate而不使用拼接SQL语句的方式使用JDBC。
现在我们要操作的对象是“索引”,所以我们使用的是面向对象的Compass。Compass是基于lucene的面向对象的操作索引的产品。
hibernate被称为ORM框架,Compass被和为OSEM产品,
关于Compass想知道更多百度或Google去搜吧.
<!--EndFragment-->
<!--EndFragment-->