题记

马云演讲中曾经提到:很多时候少听成功专家的话。所有的创业者多花点时间学习别人是怎么失败的,因为成功的原因有千千万万,失败的原因就一两个点。

创业需要关注别人的失败,而开发实战,别人的错误经验、别人的问题也非常有价值。

开发最懊悔的事莫过于:自己费尽脑汁、花费了很长时间解决了问题,原来别人在社区或者别的地方早已经给出了更优化的方案。

开发最最懊悔的事莫过于:别人已经给出了方案,但是我们仍然在黑暗中苦逼的摸索。

因此,我从2018年4月——至今,每月都会梳理出了Elasticsearch中文社区的精华干货——简称:Elastic错题本
问题大多来自Medcl、wood大叔等大牛的精彩回复,结合实战严选的核心问题。

放在了GitHub上。

GitHub地址:http://t.cn/Ec8IvKA

目的:提前加深认知,少重复走别人的弯路!

0、【Kibana】Kibana CCR功能连接失败的处理方法

【描述】

ES的cross cluster功能 很简单就可以配置成功,kibana也支持通过 集群名:索引名 的方式直接调用,但是发现一个很难受的问题,就是当有一个集群连接不上时,整个面板就会提示连接失败,其他连接成功的数据也不显示了。大家有什么解决方案吗?当集群连接不上就跳过之类的设置。

【解答】
6.1版本后,会有一个skip_unavailable的参数,对症你的问题。

1、【Kibana】kibana图表能做自定义标注吗?

可以的,用 TSVB,支持标注。
推荐:https://elasticsearch.cn/article/701

2、es能否9200端口监听在127.0.0.1 9300端口监听到0.0.0.0这样配置?

描述:现在我想9200 API接口端口人监听在回环地址127.0.0.1上 然后前面再加一个nginx 用来作访问日志审计 用户限制等功能,而tcp节点数据端口9300就监听在0.0.0.0所有可用的IP地址上。ES是6.5.4版本 有没有办法通过更改elasticsearch.yml配置来实现?

【回复】
HTTP 的是 http.bind_host http.bind_host——The host address to bind the HTTP service to.
Defaults to http.host (if set) or network.bind_host.

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html

TCP 的是 transport.bind_hosttransport.bind_host——The host address to bind the transport service to.
Defaults to transport.host (if set) or network.bind_host.

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-transport.html

TCP 是集群内互联的,同样要做好加密措施,要绑也是绑定内网地址,不要4个0。

3、给ES 9200 端口配置域名无效

描述:
大家有给ES 的9200 配置过域名吗?

配置后发现在浏览器直接访问域名可以像之前一样看到ES 的信息

但是如果在程序中或者 postman 中使用域名/索引/_search 的时候发现并获取不到相应的数据

【解答】

先试试这个——配置域名很简单,前面加一个 nginx 做一下反向代理就可以了:

1location ^~ /data/2{3proxy_pass http://192.168.187.xxx:9200/;4}

关键点在用最后面的/符号。

4、增加专用的协调节点,查询没有变快

【解答】

1、依靠协调节点去提高查询速度,大部分情况下收益不会有预期的大,协调节点是为了更合理的分配资源,
参与merge时资源的消耗,查询速度主要还是看索引本身和查询语句是否有可以优化的空间。

2、增加协调节点不一定能使得查询速度明显提升,
最重要的要看你查询的数据量和查询语句的优化

【补充知识点-官网】

协调节点用途——诸如搜索请求或批量索引请求之类的请求可能涉及保存在不同数据节点上的数据。
例如,搜索请求在两个阶段中执行,这两个阶段由接收客户端请求的节点 - 协调节点协调。
1)在分发阶段,协调节点将请求转发到保存数据的数据节点。 每个数据节点在本地执行请求并将其结果返回给协调节点。
2)在收集阶段,协调节点将每个数据节点的结果减少为单个全局结果集。

(经常被问到的问题)每个节点都隐式地是一个协调节点
这意味着将所有三个node.master,node.data和node.ingest设置为false的节点仅用作协调节点,无法禁用该节点。
结果,这样的节点需要具有足够的存储器和CPU以便处理收集阶段。

5、Elasticsearch开源和商业化版本区别?

https://www.elastic.co/subscriptions

6、【反向查询】ES是否可以实现反向查找,类似敏感词的功能

请问:ES是否可以实现反向查找,类似敏感词的功能,需求是:一篇文章里,需要查找 文章中是否有数据  在索引中存在(完全匹配)

【实现举例】:
percolate查询可用于匹配存储在索引中的查询。 percolate查询本身包含将用作查询以与存储的查询匹配的文档。

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-percolate-query.html

7、查询时使用terms来替换多个term可以提高效率吗?

根据 lucene 官方的解释:

  • 当 term 的个数少的时候,termsQuery  等效为多个 termQuery 使用 boolQuery 使用 or 操作符连接起来;

  • 当 term 的个数多的时候,termsQuery 查询创建一个位集的方式进行查询,效率会比普通的 bool 方式好一些

https://lucene.apache.org/core/6_4_2/queries/org/apache/lucene/queries/TermsQuery.html

8、【多次提问类似问题】elasticsearch 批量删除 导致使用磁盘容量上升

注意:

1、es的删除是标记模式,删除不会是立马删除,会给数据打个删除状态,在索引和段合并的过程中,es会整合资源,
将标记删除的数据真正的删除掉。所以你看到是一个缓慢的磁盘下降过程

2、es的合并,是将要合并的segment读取出来,再写入到新的segment,然后删除老的segment,所以,消耗大量的资源和磁盘空间。

9、logstash 字符串转换

https://elasticsearch.cn/question/4469
配置见文件附件部分

10、超大ES集群如何控制主分片均匀分配

这里按照你的描述可能涉及主分片的分配策略的修改。
5.X版本之后的主分片的选举实现:依据allocation id 从 inSyncAllocationIds 列表中选择主分片。

推荐看一下官方文档:

https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-allocation.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html

并且还有一个维度,建议关注一下:,触发分片分配的时机:不只是创建索引的阶段,还包含:
1)  index 索引增删;
2)节点增删;
3)reroute操作;
4)副本数量改变;
5)集群重启。

10、elasticsearch不能删除已有index中的字段吧?

删除Mapping的字段,而非字段值,字段值可以通过script删除。
字段验证如下:

1、增加字段  可以  已验证
2、删除字段 不可以
4、修改字段 不可以
3、修改字段类型 不可以

不过ES有其他方案可以替换,借助reindex,数据量大会有性能问题。

注意:ES 6.X版本新特性,字段支持别名字段,能很好的解决此类问题。https://www.elastic.co/guide/en/elasticsearch/reference/master/alias.html

11、MySQL中表无唯一递增字段,也无唯一递增时间字段,该怎么使用logstash实现MySQL实时增量导数据到es中?

我的ELK版本是6.5.3

【回复】

ogstash增量有两种方式:1、基于时间递增;2、基于递增字段比如:id。
两者都没有,就不大好办。
如果非要使用logstash,建议修改一下表结构。

其他的同步方式:比如——kafka-connector,也需要基于时间或者自增id的,才能实现增量。

推荐binlog方案:干货 | Debezium实现Mysql到Elasticsearch高效实时同步

12、想请教您一个高亮搜索,同时展示关联字段的问题

inner_hits API能满足要求,详见链接:
https://elasticsearch.cn/question/6887

1# 2 inner_hits能满足你的要求 2POST my_index/_search 3{ 4  "query": { 5    "nested": { 6      "path": "data", 7      "query": { 8        "match": { 9          "data.comment": "commercial"10        }11      },12      "inner_hits": {}13    }14  },15  "highlight": {16    "fields": {17      "data.comment": {18        "number_of_fragments": 019      }20    },21    "pre_tags": [22      ""23    ],24    "post_tags": [25      ""26    ]27  }28}

13、【推荐阅读】Elasticsearch 6.6 Index Lifecycle Management

再也不用管理那些crontab了!https://elasticsearch.cn/article/6358

14、【推荐】logstash在Elasticsearch中创建的默认索引模板问题

https://cloud.tencent.com/developer/article/1359811

推荐:严选 | Elasticsearch中文社区201901错题本

加入星球,更短时间更快习得更多干货!

postman中文设置_严选 | Elastic中文社区201902错题本相关推荐

  1. mysql数据库 中文乱码_数据库 MySQL中文乱码解决办法总结

    MySQL中文乱码解决办法 前言: MySQL是我们项目中非常常用的数据型数据库.但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况.下面就来介绍一下如何彻底解决数据库中文乱码情况. 1 ...

  2. dev gridview 打印列数过多_更适合孩子使用的错题打印机,超小体积什么都能打:喵喵机P3测评...

    孩子上了小学之后,就开始有各种各样的作业要求.而且,现在老师养成了远程布置作业的习惯,经常会发首古诗要求打印背诵,发个口算题卡要求打印出来快速口算练习等等. 说实话,这绝对是一个好事,前提是家里有一个 ...

  3. mysql 存json中文乱码怎么设置_解决 MySQL 中文乱码

    想要解决MySQL中文乱码首先必须了解下MySQL所支持的字符集,至于中文乱码出现的原因可以总结为:向数据库中插入的数据与数据库中的表所使用的字符集编码不同 一 . MySQL 中文字符集 常见支持中 ...

  4. kodi没有中文设置_最完整的设置中文教程,不同平台

    网友使用xbmc最多碰到的是关于xbmc 中文显示的问题,网上有一大堆的xbmc教程,我就做一下总结吧.) H" m$ r- B. V. E' K' _% V ' B: J: H/ m* C ...

  5. 中文设置_虾皮shopee平台怎么变成中文呢?怎么设置成中文

    虾皮shopee平台怎么变成中文呢?怎么设置成中文 我做跨境电商也有六年的时间了,在电商这个行业也有自己的一些经验.经验也许没有其他大卖家丰富,但会将我知道的都进行分享.如果有不懂得亚马逊和虾皮问题可 ...

  6. mysql workbench中文设置_使用Workbench完成流体压力渗透分析

           "之前的案例,APDL Showcase3里使用到了流体压力渗透载荷.有朋友读到以后,希望能在Workbench里实现这一功能.有需求就有动力,我们来试一试. " 0 ...

  7. mysql linux 中文乱码_解决MySQL中文乱码的问题

    遇到MySQL中文乱码问题,首先用status命令检查数据库的配置,如下: 上图会显示数据库配置的各项信息. 还可以用 show create database XXX,来显示创建数据库的时候的编码设 ...

  8. git配置中文乱码_解决git中文乱码问题

    进入git安装目录,改一下配置就可以基本解决: 1.etc\gitconfig: [gui] encoding = utf-8 [i18n] commitencoding = gbk [svn] pa ...

  9. postman cookie设置_接口鉴权之cookie,session和token

    什么是接口鉴权? 鉴权就是鉴定权限.在公司开发的一些系统中都会有权限的鉴定.不管是app还是网站的项目,都会有登录模块,而只要有登录模块,他有一些功能,肯定是必须要登录之后才能完成了.比如你在淘宝下单 ...

最新文章

  1. POJ - 3160 Father Christmas flymouse tanjar缩点构图+dfs
  2. 数据竞赛Tricks集锦
  3. javascript 异步模块加载 简易实现
  4. u盘安装linux18.04.3遇到的坑
  5. 从理论到实践,全方位认识HTTP/2
  6. 【SSL】SSL工作原理
  7. 6段Python代码刻画深度学习历史:从最小二乘法到深度神经网络
  8. 金融情报挖掘:面向公开文本的期货事件聚合与传导因素分析
  9. python启动方法_python进程开启的两种方式
  10. eclipse无法创建tomcat7.0的server
  11. 区块链技术核心概念与原理讲解-Tiny熊
  12. pscp使用详解 Windows与Linux文件互传工具
  13. html卡机代码,能让微信卡死的代码是什么 微信整人代码大全
  14. 一份成功的高薪软件测试求职简历应该是这样的
  15. 欧拉恒等式:数学史上的真正完美公式!
  16. python 神经网络预测未来30天数据_使用LSTM循环神经网络的时间序列预测实例:预测未来的货币汇率...
  17. 看什么看!你的学习与就业我包了!!!
  18. 笔记本电脑拆机并更换固态硬盘的方法
  19. 圣诞树代码(python)
  20. Android 如何开发指纹支付

热门文章

  1. android 模拟点击home,Android launcher中模拟按home键的实现
  2. 设计模式学习之单例模式
  3. 台式计算机关机后自行重启,台式机电脑总是自动关机重启该怎么解决?
  4. SpringMVC框架----SpringMVC的自定义类型转换器
  5. Teamviewer
  6. C语言强化——学生管理系统
  7. 一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS
  8. weiphp 简介--笔记
  9. SWF反编译软件Action Script Viewer ASV2011/08发布(AS3反编译引擎最重大升级)
  10. 华为公司参加2006 CCBN广电信息网络展览会