一、什么是全文检索?
二、全文检索的应用场景
- 搜索引擎
百度、360搜索、谷歌、搜狗 - 站内搜索
论坛搜索、微博、文章搜索 - 电商搜索
淘宝搜索、京东搜索 - 只要是有搜索的地方就可以使用全文检索技术。
三、什么是Lucene?
Lucene是一个基于Java开发全文检索工具包。
四、Lucene实现全文检索的流程
五、入门程序
1、创建索引
-
环境:
需要下载Lucene
http://lucene.apache.org/
最低要求jdk1.8 -
工程搭建:
-
步骤:
2、使用luke查看索引库中的内容
3、查询索引库
- 步骤:
六、分析器
默认使用的数标准分析器StandardAnalyzer
1、查看分析器的分析效果
使用Analyzer对象的tokenStream方法返回一个TokenStream对象。词对象中包含了最终分词结果。
- 实现步骤:
1.创建一个Analyzer对象,StandardAnalyzer对象
2.使用分析器对象的tokenStream方法获得一个TokenStream对象
3.向TokenStream对象中设置一个引用,相当于数一个指针
4.调用TokenStream对象的rest方法。如果不调用抛异常
5.使用while循环遍历TokenStream对象
6.关闭TokenStream对象
2、IKAnalyze的使用方法
- 把IKAnalyzer的jar包添加到工程中
- 把配置文件和扩展词典添加到工程的classpath下
注意:扩展词典严禁使用windows记事本编辑保证扩展词典的编码格式是utf-8
扩展词典:添加一些新词
停用词词典:无意义的词或者是敏感词汇
中文分析器的使用
- 配置环境
- 实现
七、索引库维护
1.添加文档
2.删除文档
删除全部
根据查询、关键词删除文档
3.修改文档
修改的原理是先删除后添加
八、索引库查询
1.使用Query的子类
- TermQuery
根据关键词进行查询。
需要指定要查询的域及要查询的关键词 - RangeQuery
范围查询
2.使用QueryPaser进行查询
可以对要查询的内容先分词,然后基于分词的结果进行查询。
添加一个jar包
lucene-queryparser-7.4.0.jar