马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
目次
弁言
一、docker中安装Elasticsearch
1、创建es专有的网络
2、开放端口
3、在es-net网络上安装es和kibana
4、大概出现的标题
5、测试
6、安装IK分词器
7、测试IK分词器
二、连合业务实战
1、准备依赖
2、设置yml
3、读取yml设置
4、准备es设置类
5、编写测试代码
6、利用mq异步修改es的表数据
7、实现搜刮功能
三、简单先容Elasticsearch
1、表结构与Mysql的对比
2、Mapping映射属性
3、索引库的CRUD
创建索引库和映射( * ):
查询索引库:
修改索引库:
删除索引库:
4、文档操纵的CRUD
新增文档:
查询文档:
删除文档:
修改文档:
批处理处罚:
四、RestAPI
1、初始化RestClient
(1)引入es的RestHighLevelClient依赖
(2)初始化RestHighLevelClient
2、在kibana的客户端准备创建索引库
3、Java客户端创建索引库
五、RestClient操纵文档(重在方法明确)
1、准备实体类
2、Java实现CRUD(重点)
(1)增:
(2)删:
(3)改:
(4)查:
留意:
3、批量导入文档:
六、JavaRestClient查询
根本步调(重点)
1、叶子查询
2、复合查询
3、排序和分页
4、高亮
七、数据聚合
<hr> 弁言
Elasticsearch:用于数据存储、盘算和搜刮
- Mysql:善于事件范例操纵,可以确保数据的安全和同等性
- Elasticsearch:善于海量数据的搜刮、分析、盘算
基于这个特点我计划改造用户方面的功能,基于用户量比力多,大概到达一万以上以致更多,须要对用户举行搜刮大概各种操纵,我信任es也比力恰当。
在这篇文章前面是实战,反面是具体解说,对于某些方法可以在反面解说中对应查找来利用
一、docker中安装Elasticsearch
先说下令,反面再说大概会出现的标题。
1、创建es专有的网络
由于测试须要摆设kibana容器作为一个图形化界面,创建一个网络方便让es和kibana容器互联。
- docker network create es-net
复制代码 2、开放端口
宝塔:
腾讯云:
3、在es-net网络上安装es和kibana
这里我安装7.12.1版本的es和kibana,由于之前学习有现有的镜像包安装更快
分别实行这两条指令:
–name es
-e “ES_JAVA_OPTS=-Xms512m -Xmx512m”
-e “discovery.type=single-node”
-v es-data:/usr/share/elasticsearch/data
-v es-plugins:/usr/share/elasticsearch/plugins
–privileged
–network es-net
-p 9200:9200
-p 9300:9300
elasticsearch:7.12.1
–name kibana
-e ELASTICSEARCH_HOSTS=http://es:9200
–network=es-net
-p 5601:5601
kibana:7.12.1
4、大概出现的标题
这里我是在宝塔上摆设的,由于我之前创建容器的时间没有开启防火墙的端口,应该先去开启防火墙再去安装docker容器,我这些流程出现肴杂,导致出现下面这些类似的报错:
- 设置失败!500 Server Error for http+docker://localhost/v1.45/containers/1e013
- Error response from daemon: Failed to Setup IP tables:
- Unable to enable SKIP DNAT rule:
- (iptables failed: iptables --wait -t nat -I DOCKER -i br-b649822bbcff -j RETURN: iptables:
- No chain/target/match by that name. (exit status 1))
复制代码 办理办法是先去开放端口然后重启docker服务再去安装es和kibana
重启docker:
然后再去重新安装就行
可以参考:【DockerCE】运行Docker的服务器报“Failed to Setup IP tables“的办理方法_error response from daemon: failed to setup ip tab-CSDN博客
5、测试
es:
服务器ip:9200
kibana:
服务器ip:5601
选择Explore on my own之后,进入主页面:
测试安装乐成!
检察docker:
大概利用指令:
记着kibana是用于你开发的时间测试利用,比力方便的图形化界面,现实开发也只是用es。
6、安装IK分词器
- docker exec -it es ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
复制代码 重启es容器使其收效:
7、测试IK分词器
IK分词器包罗两种模式:
- ik_smart:智能语义切分
- ik_max_word:最细粒度切分
进入Dev tools:
先测试Elasticsearch官方提供的标准分词器:
- POST /_analyze
- {
- "analyzer": "standard",
- "text": "在CSDN学习java太棒了"
- }
复制代码
测试IK分词器:
- POST /_analyze
- {
- "analyzer": "ik_smart",
- "text": "在CSDN学习java太棒了"
- }
复制代码
测试乐成,安装分词器乐成!
二、连合业务实战
一样平常利用easy-es比力多,下面是基于原生es的操纵,假如想看easy-es可以参考我照片博客:
SpringBoot中easy-es入门实战(连合官方文档版)-CSDN博客文章欣赏阅读386次,点赞10次,收藏15次。本文重要是参考官方文档举行编写,记载一下本身一些比力常利用easy-es利用方法和内容,实在他的利用和MybatisPlus差不多的,之前我还写了一些关于es的博客可以参考一下:Springboot中利用Elasticsearch(摆设+利用+解说 最完备)_spring boot elasticsearch-CSDN博客最完备最具体的springboot中利用es,在前面有服务器摆设es相干的东西,在反面有利用java的实战,对于实战的方法利用连合官网深度去研究和解说。[这里是图片009]https://blog.csdn.net/qq_73440769/article/details/144790200?spm=1001.2014.3001.5501
原理:当mysql数据发生改变时发送消息到mq,es服务吸取消息,举行更新
es操纵步调:
- 1.创建Request
- 2.准备请求参数
- 3.聚合参数
- 4.发送请求
- 5.解析聚合结果
- 5.1.获取聚合
- 5.2.获取聚合中的桶
- 5.3.遍历桶内数据
复制代码 1、准备依赖
- <properties>
- <elasticsearch.version>7.12.1</elasticsearch.version>
- </properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.elasticsearch.client</groupId>
- <artifactId>elasticsearch-rest-high-level-client</artifactId>
- <version>${elasticsearch.version}</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
复制代码 2、设置yml
- quick:
- elasticsearch:
- host: ${quick.elasticsearch.host} # 服务器IP地址
- port: ${quick.elasticsearch.port} # 服务器端口号
复制代码 3、读取yml设置
- import lombok.Data;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.stereotype.Component;
- /*
- * @读取yml配置
- */
- @Component
- @Data
- @ConfigurationProperties(prefix = "quick.elasticsearch")
- public class ElasticSearchProperties {
- // es地址
- private String host;
- // es端口
- private int port;
- }
复制代码 4、准备es设置类
- import com.quick.properties.ElasticSearchProperties;
- import org.apache.http.HttpHost;
- import org.elasticsearch.client.RestClient;
- import org.elasticsearch.client.RestHighLevelClient;
- import org.springframework.boot.autoconfigure.condition.C
复制代码 |