热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Elastic中文社区201902错题本

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

题记

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

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

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

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

因此,我从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.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_host

transport.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": 0 19      } 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错题本

Elastic 中文社区 201902 错题本

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 我们


推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 本文介绍了某点评网的搜索策略,包括名称和地址的匹配策略,模糊匹配的方法以及不同口音和拼音的近似发音。同时提供了一些例子来说明这些策略的应用。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了一个从入门到高手的VB.NET源代码,通过学习这些源代码,可以在21天内成为VB.NET高手。文章提供了下载地址,并提醒读者加入作者的QQ群和收藏作者的博客。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • 本文讨论了使用bootstrapselect插件设置container后,选择完选项后options不隐藏的问题,给出了解决方法,并提供了相应的jsfiddle链接进行演示。 ... [详细]
author-avatar
mobiledu2502884523
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有