我先森
资深大数据开发工程师,在游戏领域,工业领域,以及数字化领域负责过分布式计算大型框架底层研发,对分布式计算有一定见解。
展开
-
二一.Elasticsearch 数据类型(持续更新中,完成之后此标题会修改)
一.Aggregate metric field type原创 2021-08-24 17:47:34 · 160 阅读 · 0 评论 -
十九.Elasticsearch match match_phrase query_string 的区别
摘要:es之所以可以被搜索,是因为数据被分词之后,组织成倒排索引结构。这个最终要的理解的点,就在于“分词”的概念。这里只是简单的说明这三种搜索的区别,不去讲解es的keyword和text,如果不懂这个的话建议区查查,这里不多作赘述。1:matchmatch 会将你数入的查询string 进行分词,当查询某个文档的时候,只要被查询的文档,包含任意一个你输入的分词结果,就会成功。2.query_string2.match_phrasematch_phrase 会将你数入的查询str...原创 2021-03-07 17:29:42 · 937 阅读 · 3 评论 -
十八.ElasticSearch composite分页聚合
一:什么是composite聚合与其他multi-bucket聚合不同,该composite聚合可用于从多级聚合有效地对所有存储桶进行分页。此聚合提供了一种方式来流传输特定聚合的所有存储桶,类似于滚动对文档所做的操作。总结两句话:composite类似于mysql 多字段分组,group by 多字段。 composite提供了对聚合结果的分页获取功能,类似于es的全量获取数据之scroll功能,对scroll不了解的可以看:https://www.elastic.co/guide/en/e..原创 2020-12-07 13:55:21 · 981 阅读 · 0 评论 -
十七.Elasticsearch join 父子依赖
说明:虽然es支持join但是依然有很大的局限性,比如说join只支持在单个索引建立父子关系,不支持跨索引操作,并且join父子文档必须在同一个shard内,用起来并没有那么好用。一:join是什么 顾名思义join就是表关联关系,模拟了数据库的多表关联.二:elasticsaerch在mapping中定义表示依赖关系的字段#新版本mapping中指定父子关系PUT my-index-000001{ "mappings": { "properties": { ..原创 2020-12-02 09:21:57 · 235 阅读 · 0 评论 -
十六.Elasticsearch Adjacency Matrix Aggregation
#下面的执行语句基于6.6版本,新版本把"_doc"去掉即可PUT /emails/_doc/_bulk?refresh{ "index" : { "_id" : 1 } }{ "accounts" : ["hillary", "sidney"]}{ "index" : { "_id" : 2 } }{ "accounts" : ["hillary", "donald"]}{ "index" : { "_id" : 3 } }{ "accounts" : ["vladimir", "dona.原创 2020-12-01 20:02:38 · 398 阅读 · 0 评论 -
十五.Elasticsearch terms聚合
1:terms聚合支持同时在不同的字段上聚合,其结果包含两个独立的聚合结果。GET info-index/_search{ "size": 0,#这个设置的意思是不返回查询的结果,只返回聚合结果 "aggs": { "agg1": {#agg1 是聚合的名字,你可以自定义 "terms": { "field": "data.area_district.areaName", "size": 10 } }, "ag.原创 2020-12-01 17:19:33 · 1092 阅读 · 0 评论 -
二十.Elasticsearch springboot es多版本客户端配置
application.propertyieses207.config=ip1:9200,ip2:9200,ip3:9200es211.config=ipa:9200,ipb:9200,ipc:92001:配置package com.anyao.voip.config.elasticsearch;import com.anyao.voip.constants.CommonConstants;import com.anyao.voip.exception.VoipExcepti..原创 2020-05-15 15:26:57 · 985 阅读 · 0 评论 -
十四.Elasticsearch集群之间数据同步
一:Remote clusters 远程集群此模块允许你从当前集群向另一个集群建立一个单向连接,这个功能让你可以在当前集群去搜索另一个集群中的数据,实现跨集群搜索,另一个共功能就是实现当前集群向另一个集群复制数据,即跨集群数据同步功能。要实现跨集群搜索和跨集群备份,首先要设置Remote clusters。远程集群连接通过配置一个远程集群并仅连接到该远程集群中有限数量的节点来工作。每个远程...原创 2019-10-25 15:37:29 · 2880 阅读 · 0 评论 -
十四.Elasticsearch-Character Filters
字符过滤器(Character Filters)用于预处理字符流,然后再将其传递给tokenizer分词器。字符过滤器将原始文本作为字符流接收,并且可以通过添加,删除或更改字符来转换流。例如,可以使用字符过滤器将印度阿拉伯数字(٠ ١٢٣٤٥٦٧٨ ٩)转换为其等效的阿拉伯语-拉丁语(0123456789),或<b>从流中剥离HTML元素。一:HTML Strip Char...原创 2019-10-08 18:22:12 · 458 阅读 · 0 评论 -
十三.Elasticsearch 分析器-analyzers
目录摘要:一:认识analyzers三大组件1.Character filters (字符过滤器)2.Tokenizer (分词器)3.Token filters (token过滤器)二:各种分析器Analyzer 介绍2.1Standard Analyzer(标准分析器) 2.11拓展标准分析器的语法2.12自定义分析器的语法2.2Sim...原创 2019-09-26 17:35:01 · 1622 阅读 · 0 评论 -
十二.Elasticsearch为什么重启的时候速度那么慢?
可能很多人都遇见过,es集群重启之后,有很多的副本分片处于未分配状态,你并且很可能要等很长时间才能恢复,恢复时间和数据量大小有关,半个小时,几个小时甚至一天不等。下面来介绍一下原因。集群完全重启的时候,所有的分片都是未分配状态,这是因为要检测重启之后机器是否存在问题,比如说磁盘网络是不是有问题,因此集群之前存储的所有分片的元数据信息都不可用了,(元信息包括:每个节点存储的分片所在位置...原创 2019-07-25 16:52:55 · 4670 阅读 · 0 评论 -
十一.Elasticsearch Index API以及bulk API知识点
一.index或者 bulk API一些参数version :设置文档版本号,主要用于实现乐观锁控制version_type: 默认为internal内部控制,意思是请求中的数据设置的version和集群中的已有的数据的version一样就录入数据,对于id一样的数据也就是覆盖的意思。当其为external的外部控制的时候,意思是当录入数据设置的version比索引中的已...原创 2019-06-17 17:40:25 · 569 阅读 · 0 评论 -
十.Elasticsearch过期副本的一些理解
比如说你有三个es节点,master data1 data2.此时es某个索引设置成一个主分片点一个副本。假设现在其中data1挂掉了,此时的集群与还能用,原来主分片在data1副本在data2上的索引,由于data1挂掉,此时data2上的副本变成了主分片,此时数据可用。若此时往该索引中录入数据,然后重启原来挂掉的data1,那么此时data1中的副本就需要时间重新同步数据。假如我在...原创 2019-06-17 13:26:50 · 328 阅读 · 0 评论 -
九.Elasticsearch 如何处理写入的时候某个副本不可用
写请求到达主分片的时候,集群会通过元数据信息获取到所有副本分片的位置,然后并行转发请求,若是某些原因导致,某个分片副本不可达,主分片就会通知master让master将这个分片从同步副本组中删除,然后返回客户端一个确认操作,就表示数据已经成功,然后master会指导另一个节点建立一个新的同步分片,以保证分片副本个数的一致性。...原创 2019-06-14 18:37:08 · 726 阅读 · 0 评论 -
八.Elasticsearch Translog
目录目录1:什么是TransLog2:Translog设置2.1看官网:2.1:优化的同时存在的风险2.2网友的解释1:什么是TransLog对Lucene的更改只在Lucene提交期间持久化到磁盘,这是一个相对昂贵的操作,因此不能在每次索引或删除操作之后执行。当进程退出或硬件故障时,Lucene将从索引中删除一次提交之后和另一次提交之前发生的更改(也就是说...原创 2019-06-03 18:42:00 · 1122 阅读 · 0 评论 -
spark读取csv文件用类进行封装最后转成json写出到本地
package scalaimport com.google.gson.{Gson, JsonObject, JsonParser}import org.apache.spark.sql.{Row, SaveMode, SparkSession}object CsvParse { case class Data(callerip: String,callere164: Strin...原创 2019-01-25 17:28:04 · 846 阅读 · 0 评论 -
七.Elasticsearch 字段折叠
概要:字段折叠其实就是聚合,不过在es中字段折叠是单独一个模块,聚合也是一个模块,在某些时候两者可以实现同样的功能,字段折叠是简单的聚合,而聚合aggs则是一个大模块,里面有更多更详细的各种聚合功能。本文只说字段折叠,不讲解agg模块,感兴趣的话你可以去官网。 字段折叠: GET cdr-2018-12*/_search{ "query": { "bool"...原创 2019-11-28 13:55:21 · 2518 阅读 · 0 评论 -
六.Elasticsearch update/插入
注意:本文的代码都是基于high-level-client是elsaticsearch 的高级客户端,推荐使用。客户端:public class EsClusterClient { private static RestHighLevelClient zpclient = null; private static RestHighLevelClient cdrclient...原创 2019-11-28 10:40:37 · 432 阅读 · 0 评论 -
五.Elasticsearch data to large 问题排查,内存占用过高排查。
1:bulk队列排查:首先理解:线程池(pool有多种)-->>任务-->所有任务活跃的线程数GET /_cat/thread_pool/<thread_pool>GET /_cat/thread_pool路径参数编辑<thread_pool>:这是线程池的类型,写入,读取,合并等操作对应的是不同的线程池(可选,...原创 2019-11-26 12:12:23 · 4402 阅读 · 0 评论 -
mysql分页查询逻辑
在这里不讲代码,代码很简单,说一下逻辑,对于第一次写的人有帮助。select * from tanlename limit offset size重点注意:offset ,offset是指针位置,也就是mysql表格中的第几条数据,size是从 offset往后多少条。offset从0开始比如说:select * from tanlename limit 0 10 -->...原创 2019-11-11 16:29:11 · 480 阅读 · 0 评论 -
四.Elasticsearch -基于hdfs的快照
概要:首先了解什么是快照,所谓的快照就是对es中的数据进行的镜像copy,当es集群因为硬件故障或者是不可恢复的原因,导致重要数据全部丢失,在这种时候我们在某些情况下无法重新索引数据,此时就可以重新配置一个集群,然后用es之前保存的快照进行数据的恢复。快照版本之间兼容事项:快照包含组成索引的磁盘上数据结构的副本。这意味着快照只能还原到可以读取索引的Elasticsearch版本:在...原创 2019-10-28 17:28:11 · 604 阅读 · 0 评论 -
三.Elasticsearch 写入流程
1:请求到达协调节点,由协调节点验证操作,如果有错误就拒绝操作,然后根据当前集群状态,将请求路由到主分片所在的节点。2:该操作在主分片上本地执行,例如索引,更新或者是删除文档。这也会验证字段的内容,如果没有通过就拒绝操作。3:操作成功执行之后,转发当前的操作到当前主分片所在的副本组中的所有的分片,这个操作是并行的。4:一旦所有的副本分片成功执行并回复了主分片,主分片会把请求成功的信息以...原创 2019-06-13 18:30:46 · 364 阅读 · 0 评论 -
二.elasticsearch 为什么合并segment
目录1:优化所需要的空间2:为什么合并segment可以达到优化效果3:优化的时机1:优化所需要的空间segment优化是需要将将多个segment合并成,以减少segment的数量,在新的segment合并完成之前旧的较小的segment是不会删除的,比如说此时你的总磁盘大小是10T ,segment已经占用了7T这个时候进行合并很可能会出问题,导致磁盘不够用,这个问题...原创 2019-05-28 15:22:15 · 3029 阅读 · 1 评论 -
一.Elasticsearch segment (基于luence来详解)
相信很多接触es的同志,在了解到segments的时候只是模糊的知道这是索引文件,也知道refrash和flush,确再说点什么就不知道了,今天我就基于luence来浅谈一下这个到底是个什么东西。 首先搜索引擎,是基于倒排索引来提供搜索功能的,要做到这一点首先就是对输入数据进行分词 提起,建立词项词频,然后将这些信息存储起来,当你搜索的时候给你提供搜索结果。 1:浅谈倒排索引 ...原创 2019-05-28 03:13:01 · 2780 阅读 · 1 评论 -
18. Windows 安装Anaconda的问题
conda upgrade --all 异常如下(Caused by SSLError("Can\'t connect to HTTPS URL because the SSL module is not available."))'https://slproweb.com/products/Win32OpenSSL.html去这里下载openssl Msi格式的...原创 2019-04-19 15:39:43 · 169 阅读 · 0 评论