(一)概念介绍
1 分词: 把一串文字分割成多个关键词,也叫关键字.
2 倒叙索引: 根据词来找文档 ,而普通索引是在文档中找词,所以效率很低.
(二) Lucene引入
Lucene是apache软件基金会的一个项目,是一个开放源代码的全文检索引擎工具包,在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。
缺点:
- 效率太低
- 如果商品修改了,则需要同步索引文件.
- 如果商品新增了,则需要重新遍历重新索引.
- 重新生成索引文件的时间较长.
(三) Solr介绍 (底层用的是Lucene)
同类型产品: ElasticSearch
(1) Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果.
基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
使用 HttpSolrClient 进行远程调用
特点:
1. solr可以根据数据库表自动生成索引文件.
2. Solr可以动态的定期自动更新索引(对更新的数据进行索引的修改)
(2) 安装
- Solr5.0以上版本要求jdk必须是1.8
- 将Solr压缩包上传到linux服务器中
- tar -xzvf 压缩包名.tgz 进行解压
- 进入bin目录 使用命令 sh solr start 启动solr
- 进入 http://服务器IP:8983 查看页面,有页面就成功了.
(四)Solr与Lucene ,ikAnalyzer的关系
管理界面如下
以前歌词里的安河桥
现在这里的安河桥