暂时未有相关云产品技术能力~
暂无个人介绍
0、概要 在Elasticsearch实战场景中,我们或多或少会遇到嵌套文档的组合形式,反映在ES中称为父子文档。 父子文档的实现,至少包含以下两种方式: 1)父子文档 父子文档在5.X版本中通过parent-child父子type实现,即:1个索引对应多个type; 6.X+版本已经不再支持一个索引多个type,6.X+的父子索引的实现改成Join。 2)Nested嵌套类型
使用Elasticsearch的过程中,除了全文检索,或多或少会做统计操作,而做统计操作势必会使用Elasticsearch聚合操作。 类似mysql中group by的terms聚合用的最多,但当遇到复杂的聚合操作时,往往会捉襟见肘、不知所措… 这也是社区中聚合操作几乎每天都会被提问的原因。 本文基于官方文档,梳理出聚合的以下几个核心问题,目的:将Elasticsearch的聚合结合实际场景说透。
题记 刚接触Elasticsearch的朋友,或多或少会遇到一个问题,Elasticsearch在实际公司应用中除了搜索到底能做什么? 本文给出了答案。 除了“You Know, for Search”,Elasticsearch的使用会不断增长和变化。ObjectRocket作为一家托管云计算公司,已经在ObjectRocket平台上提供托管Elasticsearch一段时间了,并且能够看到我们客户之间的一些明确趋势以及他们如何使用该产品。以下是我们在平台上看到的Top5场景用例:
在本文中,我们将研究Elasticsearch的各个部分写入数据目录的文件。我们将查看节点,索引和分片级文件,并简要说明其内容,以便了解Elasticsearch写入磁盘的数据。
1、什么是数据模型? 数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,用图形化的形式去描述业务规则的过程,从而表示现实世界中事务的相互关系的一种映射。
思维导图 | Elasticsearch加速检索的15个核心建议
1、题记 Elasticsearch开发实战的后期会遇到性能问题,包括:创建索引性能、写入数据性能、检索性能等。网上有很多结合自己实际应用场景的相关优化建议,但“对症下药”才是关键。 实际,官网已经有非常明确的相关优化建议。如果没有实战场景,一些特性的理解可能不到位。为此,我特定将官网建议做了翻译,并加了结合实战开发的通俗理解注释。 此为第一篇:通用优化一般建议。
#1、reindex的速率极慢,是否有办法改善? 以下问题来自社区:https://elasticsearch.cn/question/3782 问题1:reindex和snapshot的速率极慢,是否有办法改善? reindex和snapshot的速率比用filebeat或者kafka到es的写入速率慢好几个数量级(集群写入性能不存在瓶颈),reindex/snapshot的时候CPU还是IO使用率都很低,是不是集群受什么参数限制了reindex和snapshot的速率? reindex不管是跨集群还是同集群上都很慢,大约3~5M/s的索引速率,会是什么原因导致的?
引言 Elasticsearch上海Meetup中ebay工程师提了索引生命周期管理的概念。的确,在Demo级别的验证阶段我们数据量比较小,不太需要关注索引的生命周期,一个或几个索引基本就能满足需要。所以,这也会产生一种假象,认为:“Elasticsearch不就是增删改查,毛毛雨啦”的荒诞的假象。 但是,在实战开发的生产环境中,索引的动态模板设置、索引Mapping设置、索引分片数/副本数设置、索引创建、打开、关闭、删除的全生命周期的管理必须高度关注,做好提前知识储备, 否则,会在开发后期出现由于数据激增暴露架构设计不合理问题,甚至引发分片/节点数据丢失、集群宕机等严重问题。
1、Elasticsearch集群不同颜色代表什么? 绿色——最健康的状态,代表所有的主分片和副本分片都可用; 黄色——所有的主分片可用,但是部分副本分片不可用; 红色——部分主分片不可用。(此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好。
1、题记 Elasticsearch后台程序开发完毕后,相关的ES配置、部署、ES DSL查询、聚合语句也做了优化,但实际客户仍然要求提高QPS,要求保障性能的前提下的很高的并发用户数。 这时候,你能想到的方案是什么呢? 实际调研发现,优选方案是Nginx负载均衡方案。
1、问题 源自星球同学的提问:es如何与hive或mysql结合使用?es不支持事务有什么好的弥补方案吗?
1、kafka同步Elasticsearch的方式 之前博文中也有介绍: 方式一:logstash_input_kafka 方式二:kafka_connector 方式三:spark stream 方式四:java程序读写自己实现
1、问题抛出? 实战开发应用场景中,有获取一段话、一篇文章词频的业务场景, 词频的前提就是分词。 常用的中文分词包括: 1、IK分词——https://github.com/medcl/elasticsearch-analysis-ik 2、结巴分词——https://github.com/huaban/elasticsearch-analysis-jieba 3、ANSJ分词——https://github.com/NLPchina/elasticsearch-analysis-ansj 实际开发中,我们可以借助以上分词工具封装成接口或服务进行分词。 但,有没有想过,借助Elasticsea
Elasticsearch 最少必要知识实战教程直播回放 1、Elasticsearch 索引的设计 1.1 单一索引还是基于时间的索引?
1、Elasticsearch6.3 特性概览 1.1、支持Sq 像操作Mysql一样使用Elasticsearch,缩减DSL的学习成本,更多人爱上ES的特性。
1、题记 工欲善其事必先利其器,ELK Stack的学习和实战更是如此,特将工作中用到的“高效”工具分享给大家。 希望能借助“工具”提高开发、运维效率!
1、题记 这是stackoverflow上一篇精彩的问答。 原文不大好理解,我做了梳理+图解; 原文是ES早期版本,部分写法已不适用,所有DSL我在6.X上进行了重写和验证; 针对原文内容做了扩展。
1、query和filter的本质区别?
1、背景 使用Jest进行批量插入数据的时候,偶尔会出现如下的bug One or more of the items in the Bulk request failed, check BulkResult.getItems() for more information. 起初认为是偶发,就把并发数调小,就再没有关注。
Elastic Podcast 第二期来啦, 这一次我们来到了位于上海的携程旅行网,携程内部大量运用了 Elasticsearch来进行集中式的运维日志管理和为业务部门提供统一的搜索服务平台, 目前线上总共部署了多达 94 个 Elasticsearch 集群和超过 700 多个 Elasticsearch 节点,每天新增日志 1600 亿条,峰值达到 300 万每秒,存放在 Elasticsearch里面的索引文档达到 2.5 万亿,磁盘存储达到 PB 级。 想知道携程是如何应对这些海量数据下的挑战,以及最佳实践,让我们一起来收听这一期的 Podcast,跟随携程的两位技术负责人吴晓刚和胡航
1、题记 我们在实际的业务场景中做Elasticsearch开发时,免不了遇到这样、那样的问题。 《死磕Elasticsearch方法论》中,已经告诉大家相关问题的排查方法。 这一节,我们以具体的示例,解决基于业务场景的Elasticsearch难题的方法?
1、题记 想到删除,基础认知是delete,细分为删除文档(document)和删除索引;要删除历史数据,基础认知是:删除了给定条件的数据,用delete_by_query。 实际操作发现: - 删除文档后,磁盘空间并没有立即减少,反而增加了? - 除了定时任务+delete_by_query,有没有更好的方式呢?
1、什么是堆内存?
1、题记 Elasticsearch有没有类似mysql的distinct的去重功能呢? 1)如何去重计数? 类似mysql: select distinct(count(1)) from my_table; 2)如何获取去重结果。 类似mysql:SELECT DISTINCT name,age FROM users;
一、可能导致ES CPU高的原因: 1、复杂的query查询 举例:我这边出现过200个组合wildcard query导致集群down掉的情况; 2、有大量的reindex操作 3、ES版本较低
0、ES6.X 一对多、多对多的数据该如何存储和实现呢?
X-Pack已经开源,预计Elasticsearch6.3版本会全面集成,不再收费。 赶紧体验一下强大的X-pack吧!
1、应用场景 实时数据流通过kafka后,根据业务需求,一部分直接借助kafka-connector入Elasticsearch不同的索引中。 另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。如下图所示: 业务系统的分层结构可分为:接入层、数据处理层、数据存储层、接口层。 那么问题来了? 我们需要基于聚合(数据处理层)的结果实现检索和聚合分析操作,如何实现更快的检索和更高效的聚合分析效果呢?
0、需求 针对凤凰网财经版块的新闻数据和评论数据, 1个索引存储采集凤凰网财经版块的新闻数据;1个索引存储相关的财经数据评论结果。 统计: 1)某条新闻的评论数的多少? 2)某条评论属于哪条新闻? 3)当前已采集数据的所有评论、评论数汇总,按照评论数逆序排序,以便于图形化展示。
0、需求 随着ELKStack在应用系统中的数据规模的急剧增长,每天千万级别数据量(存储大小:10000000*10k/1024/1024=95.37GB,假设单条数据10kB,实际远大于10KB)的累积成为日常需求。 如何以相对简单的图形化效果展示数据的增量呢? 本文给出思路和实现。
1、聚合为什么慢? 大多数时候对单个字段的聚合查询还是非常快的, 但是当需要同时聚合多个字段时,就可能会产生大量的分组,最终结果就是占用 es 大量内存,从而导致 OOM 的情况发生。
1、问题抛出 某个词组在Elasitcsearch中的某个document中存在,就一定通过某种匹配方式把它搜出来。 举例:
1、Elasticsearch支持聚合后分页吗,为什么? 不支持,看看Elasticsearch员工如何解读。
聚合认知前提 桶(Buckets)——满足特定条件的文档的集合 指标(Metrics)——对桶内的文档进行统计计算 SELECT COUNT(color) FROM table GROUP BY color COUNT(color) 相当于指标。 GROUP BY color 相当于桶。
kafka版本:V0.2.10.1 zookeeper版本:V3.4.11 confluent版本:V3.3.0 一、confluent相关启动
1、kafka同步到Elasticsearch方式? 目前已知常用的方式有四种: 1)logstash_input_kafka插件; 缺点:不稳定(ES中文社区讨论) 2)spark stream同步; 缺点:太庞大 3)kafka connector同步; 4)自写程序读取、解析、写入
题记 源自“死磕Elasticsearch”技术群里的讨论问题: ——我想用es做个类似于知识库的东西,所以需要索引一些pdf、word之类的文件,这个你之前有试过吗?能给个方向吗?
源自死磕ElasticsearchQQ群(626036393)中的一个问题: 问题如下: where (position=ES or work=ES or content=ES) and academic=本科 and (city=北京 or city=深圳) 1 怎么构建ES的查询条件? 我的问题拆解与实现如下:
一、高级检索的功能点 通过高级搜索配置搜索项,能更准确的过滤掉不相干信息,获取最想要的检索信息。 以Google搜索为例(截取核心片段):
题记 Elasticsearch当清理缓存( echo 3 > /proc/sys/vm/drop_caches )的时候,出现 如下集群健康值:red,红色预警状态,同时部分分片都成为灰色。
0、引言 在关系型数据库如Mysql中,设计库表需要注意的是: 1)需要几个表; 2)每个表有哪些字段; 3)表的主键及外键的设定——便于有效关联。 表的设计遵守范式约束,考虑表的可扩展性,避免开发后期对表做大的改动。 Mysql或者Oracle中,修改数据类型相对比较简单,通过命令行或者navicat、sqldeveloper等可视化工具直接修改。 即便千万级别数据量,多等点时间,也能修改好。
、问题引出 ES5.X节点类型多了ingest节点类型。 针对3个节点、5个节点或更多节点的集群,如何配置节点角色才能使得系统性能最优呢?
1 docker ce 介绍 1.1 docker ce功能
在业务系统中,遇到过两个问题: 问题1:设置为keyword类型的字段,插入很长的大段内容后,报字符超出异常,无法插入。 问题2:检索超过ignore_above设定长度的字段后,无法返回结果。
0、引言 本文翻译自Elasticsearch20170918热乎的官方博客,原作者:Christian Dahlqvist。 在构建Elasticsearch集群的初期如果集群分片设置不合理,可能在项目的中后期就会出现性能问题。
1、大文件是多大? ES建立索引完成全文检索的前提是将待检索的信息导入Elaticsearch。
题记 网上当前(截止20170914)流传的各种配置文件普通存在以下问题: 1)版本低,不能和当前版本5.X匹配。 2)5.X的配置本身较1.X,2.X就有很大不同,原有配置已不适用。 3)ES英文、中文文档也没有及时更新。 现在,确保ES5.X的高性能到底需要哪些配置越发令人神往。 以下清单内容参考了ES官网文档,且都是在ES5.4.0的环境中验证过的,请放心使用。
1、统计实现 find -type f | sed -e 's/.*\.//' | sort | uniq -c | sort -n > rst.txt 1 2、脚本分解 1) find -type f regular file , 查找正规的文件 返回:./bak_network/道x网站/bak_第8章.md
题记 Java的学习都是通过Google用到什么就查什么,不成系统。 虽然相比于面向对象语言C++有很大的相似性,但也有很多不同点。 本文就基于《Java语言程序设计》(基础篇)过一遍基础知识点,着重过一遍C++没有的。