引入spring-boot-starter-data-elasticsearch包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
查看springboot-data的elasticsearch的版本
image.png也可以参考这里的版本(但是好像不太准确)Spring Data Elasticsearch - Reference Documentation
docker --- elasticsearch6.4.3(以为我这里的是6.4.3版本,你们下载对应版本即可,这里采用docker容器,可以直接官网下载对应版本)
设置内核(好像是只有docker的需要设置)
image.pngInstall Elasticsearch with Docker | Elasticsearch Guide [7.5] | Elastic
启动elasticsearch容器
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d --name es elasticsearch:6.4.3
复制elasticsearch对应的文件夹
// 创建elasticsearch
mkdir elasticsearch
// 进入elasticserch文件夹
cd elasticsearch
// 进入elasticsearch容器
docker exec -it es /bin/bash
image.png
查看elasticsearch的config所在文件夹,然后复制地址,推出
cd config
pwd
exit
image.png
复制config、data、plugins文件夹
// 复制config
docker cp es:/usr/share/elasticsearch/config .
// 复制data
docker cp es:/usr/share/elasticsearch/data .
// 复制plugins
docker cp es:/usr/share/elasticsearch/plugins .
删除es容器
docker stop es
docker rm es
安装IK分词器(这里使用离线方法)
参考地址:docker 安装ElasticSearch的中文分词器IK - 石智文的博客 - 博客园 (cnblogs.com)
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip
// 进入plugins文件夹
cd plugins
// 创建ik文件夹
mkdir ik
// 进入ik
cd ik
// 把已下载的文件上传到这里
// 解压
unzip elasticsearch-analysis-ik-6.4.3.zip
// 删除压缩包
rm -rf elasticsearch-analysis-ik-6.4.3.zip
重新启动elasticsearch
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /root/elasticsearch/config:/usr/share/elasticsearch/config -v /root/elasticsearch/data:/usr/share/elasticsearch/data -v /root/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d --name es elasticsearch:6.4.3
springboot-data-elasticsearch使用注意事项(具体使用请百度)
// application.yml添加配置
spring:
data:
elasticsearch:
cluster-name: docker-es-qidaedu
cluster-nodes: 192.168.0.18:9300
// LocalDateTime类型需要自己序列化(在ES执行过程中,LocalDateTime存在无法进行反序列化的异常)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime createAt;
// ik分词器的使用
@Field(type = FieldType.Text, analyzer = "ik_smart", searchAnalyzer = "ik_max_word")
private String userName;
网友评论