什么是Elasticsearch
由于Mysql的like搜索会导致索引失效,Elasticsearch是一个搜索引擎框架,也是一个Nosql数据库
Elasticsearch解决了
Mysql海量数据搜索效率过低
Mysql全文检索效率过低
ES的工作原理: 倒排索引
对于存放的数据,以一定的方式进行分词,并将分词的内容存到一个 单独 的分词库中,
当用户去查询数据时,将查询的关键词同样进行分词
然后两者相互匹配 ,如果匹配成功得到数据的 id (创建数据时定义)
最后根据数据id找到数据
Java操作ES
导入相关依赖
配置ES服务器位置
ES实体类注解
@Document(定义索引和type)
类
@Field( analyzer(所有操作的分词器)="ik_smart" , SearchAnalyzer(查询时优先使用的分词器)= "ik_smart" )
searchAnalyzer="whitespace" //查询不分词
字段
ES两种常用分词库
ik_smart:常用于标题的分词,分词数较少
ik_max_word:常用于内容的分词,分词数较多
除了这两种,还可以在ik配置文件自定义分词
这三种都需要导入 ik 分词插件
分页查询:使用Pageable对象
原文:https://www.cnblogs.com/javarook/p/13629145.html