1. 🏆 全文检索
1.1. 版本约定
https://docs.spring.io/spring-data/elasticsearch/reference/elasticsearch/versions.html
1.2. 环境安装
采用docker环境配置
1.2.1. 安装Elasticsearch
docker run -e TZ=Asia/Shanghai -e ES_JAVA_OPTS="-Xms1g -Xmx1g" -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name es \
--privileged=true elasticsearch:7.9.0
[!tip] 建议这里通过网络固定好
ip
,具体参考 docker网络
1.2.2. 安装IK分词器
进入Elasticsearch容器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.0/elasticsearch-analysis-ik-7.9.0.zip
[!tip] 这里可能由于网络原因,失败多重复执行几次,直到安装成功。 安装后需要重启es服务才生效
1.3. 安装kibana
可视化管理es容器
docker run -d --name es-kibana -e “I18N_LOCALE=zh-CN” --link=es:elasticsearch -p 5601:5601 kibana:7.9.0
访问地址:http://ip:5601/app/dev_tools#/console
[!tip]请使用7.9.0版本,es版本不同差异比较大,版本不兼容会导致es功能无法正常使用
1.4. 开发配置
1.4.1. 依赖
依赖ms-elasticsearch的方式
方式1、将ms-elasticsearch打包成jar, 同步到本地的maven库;
<dependency>
<groupId>net.mingsoft</groupId>
<artifactId>ms-elasticsearch</artifactId>
</dependency>
方式2、直接将ms-elasticsearch源代码复制到项目中;
1.4.2. application.yml
必须先安装环境,ip根据实际情况编写
# ES服务器链接
elasticsearch:
uris: [ localhost:9200 ]
data:
elasticsearch:
repositories:
enabled: true
1.5. es各搜索简介
- 联想搜索:返回与输入结果相近的词条集合
[!tip]一般可以用在用户搜索输入的时候,类似百度的搜索框,自动补全用户可能想输入的词条或以下拉列表显示
- 通用搜索、高亮搜索
正常搜索文章使用通用或高亮搜索,返回文章详细信息,两个接口之间没有本质区别;搜索时会自动检测是否有站群环境
高亮前缀如:<span style="color=red">,高亮后缀如:</span>
- 热词搜索 返回词条搜索频率及词条,可指定范围时间内返回词条个数;热词会随用户搜索自动统计增长,不需要人为干预
- 聚合搜索
根据字段词条分组展示,以相同词条为一组展示同词条的个数和词条内容
[!tip]一般内容管理系统不常用,文章大多具有唯一性;常用于统计各品牌手机销售量等