springboot-data-elasticserach + 安装docker版elasticsearch(单节点,要先安装jdk8) + 安装ik分词器

注意:集群请参考安装弹性搜索与码头|弹性搜索指南 [7.5] |弹性的 (elastic.co)

引入spring-boot-starter-data-elasticsearch包


    org.springframework.boot
    spring-boot-starter-data-elasticsearch

查看springboot-data的elasticsearch的版本

image.png

也可以参考这里的版本(但是好像不太准确)Spring Data Elasticsearch - Reference Documentation

docker --- elasticsearch6.4.3(以为我这里的是6.4.3版本,你们下载对应版本即可,这里采用docker容器,可以直接官网下载对应版本)

设置内核(好像是只有docker的需要设置)

Install Elasticsearch with Docker | Elasticsearch Guide [7.5] | Elastic

image.png

启动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;

你可能感兴趣的:(springboot-data-elasticserach + 安装docker版elasticsearch(单节点,要先安装jdk8) + 安装ik分词器)