
ElasticSearch
衣舞晨风
微信公众号【衣舞晨风】
-
原创 Elasticsearch索引和查询性能调优
Elasticsearch索引和查询性能调优的21条建议【上】Elasticsearch索引和查询性能调优的21条建议【下】2021-02-07 09:30:3537
1
-
原创 Elasticsearch Refresh和Flush区别
Refresh使用refresh API显式刷新一个或多个索引。 如果请求以数据流为目标,则刷新该流的后台索引。刷新使自上次刷新以来对索引执行的所有操作都可用于搜索。默认情况下,Elasticsearch会定期每秒刷新一次索引,但仅在最近30秒内收到搜索请求的索引上刷新。也可以使用index.refresh_interval设置更改此默认间隔。刷新请求是同步的,并且在刷新操作完成之前不会返回响应。Flush通过刷新data stream或者index将当前仅存储在事务日志中的数据永久存储到Luce2021-02-07 09:27:5529
0
-
原创 Elasticsearch 常用命令 持续更新
_reindexcurl --location --request POST 'http://10.138.25.214:9200/_reindex' \--header 'Content-Type: application/json' \--data-raw '{ "source": { "index": "deploy-log" }, "dest": { "index": "deploy-log-2018.12.24" }}'创建indexcurl .2021-02-05 16:46:3340
0
-
原创 通过Docker部署Elasticsearch集群
容器化部署Elasticsearch集群及Kibana2020-05-12 21:03:14937
0
-
原创 Elasticsearch集群规模和性能调优
翻译自:Elasticsearch Cluster Sizing and Performance Tuning地址:https://www.elastic.co/cn/blog/found-sizing-elasticsearch集群应该有多少个节点?应该创建多少个副本?为了获得最佳的搜索性能,分片(Shard)的最佳平均大小是多少?诸如此类的问题只有你自己知道答案。没有人知道你的数据...2020-04-08 19:21:59703
0
-
原创 Elasticsearch 写流程
本文分析ES写入单个和批量文档写请求的处理流程,仅限于ES内部实现,并不涉及Lucene内部处理。在ES中,写入单个文档的请求称为Index请求,批量写入的请求称为Bulk请求。写单个和多个文档使用相同的处理逻辑,请求被统一封装为BulkRequest。1、文档操作的定义在ES中,对文档的操作有下面几种类型:enum OpType { INDEX(0), CREATE(1), UPDA...2019-04-10 18:17:47953
1
-
原创 Elasticsearch Search流程
GET操作只能对单个文档进行处理,由_index、_type和_id三元组来确定唯一文档。但搜索需要一种更复杂的模型,因为不知道查询会命中哪些文档。找到匹配文档仅仅完成了搜索流程的一半,因为多分片中的结果必须组合成单个排序列表。集群的任意节点都可以接收搜索请求,接收客户端请求的节点称为协调节点。在协调节点,搜索任务被执行成一个两阶段过程,即query then fetch。真正执行搜索任务的...2019-04-11 19:50:081092
0
-
原创 Elasticsearch GET 流程
ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,GET/MGET必须指定三元组:_index、_type、_id。也就是说,根据文档id从正排索引中获取内容。而Search不指定_id,根据关键词从倒排索引中获取内容。本章分析GET/MGET过程,下一章分析Search过程。一个GET请求的简单例子(来自官网)如下:curl -XGET http://127.0.0.1...2019-04-11 19:50:51835
0
-
转载 Elasticsearch 7.0 废弃mapping type原因及替代方案
Removal of mapping typesIndices created in Elasticsearch 7.0.0 or later no longer accept a default mapping. Indices created in 6.x will continue to function as before in Elasticsearch 6.x. Types are...2019-06-29 14:08:369844
0
-
转载 elasticsearch 倒排索引原理
如何快速检索?Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在 18 和 30 之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型数据库的 b-tree 索引快在哪里?到底为什么快呢?笼统的来说,b-tree 索引是为写入优化的索引结构。当我们不需要支持快速的更新的时候,可以用预先排...2019-07-29 19:26:201238
0
-
转载 Elasticsearch 分词器
无论是内置的分析器(analyzer),还是自定义的分析器(analyzer),都由三种构件块组成的:character filters,tokenizers,token filters。内置的analyzer将这些构建块预先打包到适合不同语言和文本类型的analyzer中。Character filters (字符过滤器)字符过滤器以字符流的形式接收原始文本,并可以通过添加、...2019-08-21 15:55:20356
0
-
原创 elasticsearch : which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
按照下文设置es开机自启之后,https://blog.csdn.net/jiankunking/article/details/84374354使用 systemctl status elasticsearch启动失败,查看服务状态,报出以下错误:[root@jiankunking logs]# systemctl status elasticsearch● elasticsear...2019-02-11 09:29:4813585
1
-
原创 Elasticsearch 路由计算
作为一个没有额外依赖的简单的分布式方案,ES 在这个问题上同样选择了一个非常简洁的处理方式,对任一条数据计算其对应分片的方式如下:shard = hash(routing) % number_of_primary_shards每个数据都有一个 routing 参数,默认情况下,就使用其 _id 值。将其 _id 值计算哈希后,对索引的主分片数取余,就是数据实际应该存储到的分片 ID。...2018-11-30 20:23:57256
0
-
原创 Elasticsearch segment merge对写入性能的影响
通过上节内容,我们知道了数据怎么进入 ES 并且如何才能让数据更快的被检索使用。其中用一句话概括了 Lucene 的设计思路就是"开新文件"。从另一个方面看,开新文件也会给服务器带来负载压力。因为默认每 1 秒,都会有一个新文件产生,每个文件都需要有文件句柄,内存,CPU 使用等各种资源。一天有 86400 秒,设想一下,每次请求要扫描一遍 86400 个文件,这个响应性能绝对好不了!为了解决这...2018-11-30 20:21:146327
1
-
原创 ElasticSearch注册Windows服务
默认情况下,启动elasticsearch.bat会出现一个cmd窗口,当重启服务器之后,还需要手动去启动elasticsearch服务 于是想到了将es注册成windows服务,具体步骤如下:先启动es服务,找到上图中的elasticsearch.bat文件双击启动或者用cmd启动均可在cmd中定位到bin文件夹,如下图: 注册服务: 搞定! 设置成功后,可以重启服务器后,直接访问:2016-11-26 19:48:403092
0
-
原创 Ubuntu elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
具体错误信息如下:jiankunking@ubuntu:~/software/elasticsearch$ ./bin/elasticsearch[2017-03-23T18:14:05,880][INFO ][o.e.n.Node ] [] initializing ...[2017-03-23T18:14:06,151][INFO ][o.e.e.NodeEnvi2017-03-23 19:35:2056511
8
-
原创 elasticsearch 5.1 别的机器无法访问9200端口
今天在虚拟机上安装了zookeeper与elasticsearch,在本机可以正常访问zookeeper,但elasticsearch则无法正常访问。telnet 9200 端口也不同。查看虚拟机端口情况如下: 从图中可以查出,9200被限制为本机访问。在elasticsearch.yml文件中增加:network.bind_host: 0.0.0.0重启elasticsearch 9200端口可2017-03-23 19:56:1112191
2
-
原创 安装nodejs和grunt以后出现 /usr/bin/env: node: No such file or directory
现象如下:jiankunking@ubuntu:~$ cd software/plugins/elasticsearch-head/jiankunking@ubuntu:~/software/plugins/elasticsearch-head$ grunt server/usr/bin/env: ‘node’: No such file or directory解决办法: 执行如下命令:su2017-03-31 08:21:475051
0
-
原创 elasticsearch api client使用
一、基本概念1、Node 与 ClusterElastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。2、IndexElastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。所以,Elast2017-12-27 19:32:173553
0
-
原创 Elasticsearch 集群健康状态监控接口
        说到 Elasticsearch 集群监控,首先我们肯定是需要一个从总体意义上的概要。不管是多大规模的集群,告诉我正常还是不正常?没错,集群健康状态接口就是用来回答这个问题的,而且这个接口的信息已经出于意料的丰富了。命令示例# curl -XGET 127.0.0.1:9200/_cluster/health?pretty{ ...2018-07-22 09:01:463333
0
-
原创 关于日志的那些事儿
在满足业务需求的前提下,代码、架构,越简单,越稳定。通用性的架构意味着,考虑的比较全,也就会比较重(比如:会引入很多组件),而这些组件对于你的场景有可能并不是不可或缺的,同时运维这些组件又会产生一定的成本,所以说通用架构对于你来说有可能并不一定是最好的。2019-07-16 16:41:329439
23
-
原创 CentOS 7 elasticsearch service 开机自启
VMware虚拟机中安装了Centos7,为了让Centos能够访问外网及设置固定的ip地址以方便本地通过SSH访问Centos,做以下几步。1.确认虚拟机网络链接方式为:NAT模式2.查看Centos当前ip地址(局域网内),命令:ip addr3.进入网络配置目录:cd /etc/sysconfig/network-scripts4.查看所有配置文件ls #列出文件5.辨...2018-09-20 17:37:587734
4
-
原创 ElasticSearch Kibana X-pack安装
一、ElasticSearch安装及开机自启此处搭建的是一个单机版,搭建集群的时候discovery.zen.ping.unicast.hosts与discovery.zen.minimum_master_nodes需要进行相应修改1、创建用户添加具有root权限用户useradd esvi /etc/sudoerses ALL=(ALL) NOPASSWD:ALL测试su...2018-11-23 12:47:511778
0
-
原创 Elasticsearch 一致性
突然想起一个问题,ES如何保证写入后,当前节点宕掉,不会发生数据丢失?一、动态更新的 Lucene 索引以在线动态服务的层面看,要做到实时更新条件下数据的可用和可靠,就需要在倒排索引的基础上,再做一系列更高级的处理。其实总结一下 Lucene 的处理办法,很简单,就是一句话:新收到的数据写到新的索引文件里。Lucene 把每次生成的倒排索引,叫做一个段(segment)。然后另外使用一个c...2018-11-30 20:05:58790
0
-
原创 Elasticsearch NoNodeAvailableException None of the configured nodes are available
问题背景: 将es部署到内网中两台服务器,其Ip地址分别为:192.111.222.5,192.111.222.1(部署方式完全一样,是将192.111.222.1服务器上es整个部署包,拷贝到了192.111.222.5,包括索引文件)。 在开发本机通过idea编译直接运行代码,从而连接对应es的服务器,连接192.111.222.1就没有任何问题,但连接192.111.222.5,就会报出异2016-11-29 22:54:3823638
6