es
TreeCode
我喜欢种树
展开
-
2022-ES学习与实践
ES学习系列核心场景:es5.x基于Flink-Connector-Elasticsearch实现EsSink问题:添加权限控制,即x-pack相关实现。解决:ES5.x中,与es交互的client是TransportClient。以下为flink-connector-es5源码: @Override public TransportClient createClient(Map<String, String> clientConfig) { Setti原创 2022-03-27 16:23:00 · 3313 阅读 · 0 评论 -
ElasticSearch关于CREATE写入模式问题记录
ElasticSearch关于CREATE写入模式的问题记录问题:使用CREATE模式写入TPS骤降。数据特点:每条doc有4条相同的副本,即100条数据中,包含20组相同的数据。产生问题原因:Java代码中对所有Reponse中包含VersionConflictException异常的请求都进行了十次重试操作,无论请求是INDEX还是CREATE还是UPDATE。然鹅,看了官方文档以及实操后发现CREATE写入方式恰恰是通过版本锁来保证相同id只有第一条能写入成功,所以除了第一条写入的doc,其原创 2022-01-14 16:46:25 · 828 阅读 · 0 评论 -
es x-pack monitor权限问题
es monitor权限对集群信息拥有只读的权限问题使用flink-es-connector连接es服务时,如果开启xpack功能,需要monitor权限,如果登录的用户没有这个权限,es会报权限错误。但是实际生产中,monitor权限和index写的权限基本上不会同时赋予一个生产角色。所以需要更改这部分的源码,绕过monitor权限。解决自己写一个ping方法,仅检查ip:port是否能连通就行,其他的信息没有monitor权限也查不了拓展关于xpack权限的详细描述可以查看这篇文章里面有关原创 2021-10-29 20:31:32 · 306 阅读 · 0 评论 -
ES写入四大模式:INDEX、CREATE、UPDATE、DOC_AS_UPSERT
四大模式区别:INDEX:这个模式下,可以采用es内部生成id的方式,使得每次写入都是新增数据,因为每一次的id都不同CREATE:需要指定id,如果id已存在,则该条数据写入失败(被丢弃)UPDATE:需要指定id,如果id已存在,覆盖原有数据UPDAET --OPTION: DOC_AS_UPSERT需要指定id,如果id已存在,以UPSERT的方式更新数据,而不是直接覆盖原有数据。Java API// indexrequestIndexer.add(Requests.index原创 2021-09-29 21:02:09 · 6295 阅读 · 0 评论 -
es查询原理
es查询原理:步骤:查询请求将被随机发送到一个es节点,该节点成为coordinating node,即协调节点协调节点根据路由算法算出被查询doc所在的primary shard在哪个节点协调节点使用轮询调度算法(Round-Robin Scheduling)将请求平均的分配到primary shard和replica shard上,目的是负载均衡处理请求的节点将请求结果返回给协调节点协调节点将结果返回给用户本文参考千锋教育 搜索引擎 ElasticSearch 视频教程全集(60P)原创 2021-07-21 20:37:48 · 1319 阅读 · 1 评论 -
es漏采集数据解决办法
背景:使用search_after采集使用search_after采集需要指定一个或多个sort字段,我的初步方案是用一个时间戳字段原创 2021-07-14 22:19:27 · 773 阅读 · 0 评论 -
Elasticsearch7 index语法
Elasticsearch7 index语法查询:Get API | Elasticsearch Guide [7.13] | ElasticGET index/_doc/_id举例:GET my-index-000001/_doc/0插入和更新:Update API | Elasticsearch Guide [7.13] | Elastic_id存在就是更新,否则执行插入操作PUT /index/_doc/_id{ "content":"it is cool !"}举例:P原创 2021-07-09 19:56:30 · 227 阅读 · 2 评论 -
ElasticSearch分页查询—search_after的引用
需求:实时从es中采集大量数据分析:既然是大批量数据,所以全量采集肯定不行,需要增量采集数据。ES中支持三种数据分页查询方案,分别是 1.from + size浅分页 2. scroll 3. search after在这三种分页方式中,from + size不适合数据量很大的场景,scroll不适合实时场景,而search after在es5.x版本之后应运而生,较好的解决了这个问题。如下官方文档所示:search after 工作流程:连接es客户端指定一个或多个排序字段(建议是_原创 2021-06-22 18:10:33 · 1300 阅读 · 2 评论 -
es index pattern 时间戳字段与kibana时区显示问题
故事发展:前两天交付找到我:“老弟,基于处理时间产生的时间戳在kibana里面展示差八个小时啊,什么情况,可以排查一下吗?”我看了一下,哦,原来这样:es的时间的时区默认是GMT0,然而交付在kibana设置的时区是Asia/Shanghai,由此就把es的时间提早了八小时。于是我跟交付说,“老哥,把kibana的时区设置成GMT0就正常了”交付:“哦豁,果然如此,感谢感谢”不一会儿,交付:“不行啊老弟,把kibana时区改了logstash的时间传过来就不对了,还有别的解决办法吗”我:“唉,那原创 2021-04-13 20:33:53 · 1133 阅读 · 0 评论 -
es Index java Api
IndexRequest支持的参数类型:官网地址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-document-index.html其实归根到底最后都是json直接传入Json字符串传入一个Map使用XContentBuilder直接以KV的形式传入...原创 2021-03-30 23:41:47 · 158 阅读 · 0 评论 -
es7自动添加时间戳
需求:根据时间提取es数据解决:为es的记录添加时间戳方法:es5.0以前的版本使用的是@time_stamp方式来给document的每一条记录添加时间戳,"properties": { "@timestamp":{ "format":"strict_date_optional_time||epoch_millis", "type":"date" "enabled":原创 2021-03-11 21:40:31 · 9820 阅读 · 0 评论 -
es使用索引模板来指定分片和副本数
问题:es7中,创建索引时,默认只有一个分片,影响性能和可用性,经过一番探索之后,确定了这个方案,使用索引模板来指定创建索引时的分片数。举例:例一:当我创建了如下template_1的索引模板之后,我去创建索引开头名为test的索引时,会自动使用这个索引模板,创建出分片数为3,副本数为1的索引。POST _template/template_1{ "index_patterns": [ "test*" ], "settings": { "number_of_shards原创 2021-03-04 10:19:45 · 2034 阅读 · 1 评论 -
kibana启动踩坑:Error: resource_already_exists_exception
踩坑: [warning][savedobjects-service] Unable to connect to Elasticsearch. Error: resource_already_exists_exception原因:kibana认为系统已存在一个正在运行的kibana解决:1.访问以下两个请求,ip和port填自己的,确认是否有返回,如果有,进行下一步,如果没有我就不知道了http://localhost:9200/_cat/indiceshttp://localhost:9200/原创 2021-02-26 10:56:55 · 2861 阅读 · 0 评论 -
springboot集成es修改默认版本
导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>从maven中查看版本和本地是否一致,这里显示版本为7.9.3,我本地的版本为6..原创 2021-02-19 21:12:12 · 3105 阅读 · 3 评论 -
ik设置扩展词和停用词
扩展词:修改IKAnalyzer.cfg.xml配置文件,这是ik的config目录下的文件在config目录下创建ext.dic文件,最好是复制ik自带的dic文件,然后修改名称,最后将里面的内容清空,然后就能在里面添加自己的扩展词了,注意一词一行。...原创 2021-02-18 21:23:40 · 395 阅读 · 0 评论 -
ik分词器的下载和使用
下载、安装ik分词器6.2.4下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.4/elasticsearch-analysis-ik-6.2.4.zip其他版本修改url即可。安装:将zip传到linux,然后unzip解压,将解压的目录移动到es的plugins目录下即可,最后重启es验证:使用kibanaGET _analyze{“analyzer”: “ik_smart”,原创 2021-02-18 21:05:21 · 645 阅读 · 0 评论 -
es索引库原理
原创 2021-02-18 18:21:14 · 231 阅读 · 0 评论 -
kibana语法
通过kibana对es进行crud:基本语法://创建一个简单索引PUT /bsfit//查看索引GET /bsfit//查看索引详细信息GET /_cat/indices?v//删除索引DELETE /bsfit//创建一个索引,并指定type和mappingPUT /bsfit{ "mappings": { "member":{ "properties": { "id":{"type": "keyword"}, "name"原创 2021-02-18 18:20:09 · 2181 阅读 · 0 评论 -
安装kibana
步骤:下载kibana安装包,传到linux上,并解压进入congfig目录,修改kibana.yml (根据需要保存原文件),找到其中的server.host和elasticsearch.url,将其中的ip改成自己的ip,保存退出。到bin目录下通过命令 ./kibana 启动kibana服务,然后可以通过5601端口访问kinaba服务。...原创 2021-02-18 12:49:59 · 145 阅读 · 0 评论 -
centos7安装es
环境:jdk8 centos7 es6.2.4安装步骤:创建一个用户组和一个普通用户es切换到普通用户es下载es安装包,然后解压,解压后就可以直接在bin目录中通过 ./elasticsearch 启动es服务设置远程访问:修改config目录下的elasticsearch.yml解决重启报错:[1]:切换到root用户,vim /etc/security/limits.conf ,在末尾追加#注意格式对齐,*不能省略* soft原创 2021-02-18 11:00:06 · 258 阅读 · 0 评论