中间件与数据库:Elasticsearch
Elasticsearch JVM 堆内存使用率飙升,怎么办?
高 JVM 内存使用率会降低集群性能并触发断路器错误(导致内存熔断)。
为了防止这种情况发生,如果节点的 JVM 内存使用率持续超过 85%,官方建议采取措施降低内存压力。
Elasitcsearch CPU 使用率突然飙升,怎么办?
Elasticsearch 高 CPU 使用率通常意味着一个或多个线程池不足以支撑业务需求。
如果线程池资源耗尽,Elasticsearch 将拒绝与线程池相关的请求。
Elasticsearch 磁盘使用率超过警戒水位线,怎么办?
本系列文章介绍如何修复 Elasticsearch 集群的常见错误和问题。
这是系列文章的第一篇,主要探讨:Elasticsearch 磁盘使用率超过警戒水位线,怎么办?
Enrich Processor——Elasticsearch 跨索引关联数据新方式
在cluster1上有如a,b两索引,均有字段filed_a,索引a,b各自包含其它字段,建立新索引如c,要求c包含a索引全部文档,且在a和b索引关联字段 field_a 相同的文档中把b文档其它字段更新到索引c中。
京东云ClickHouse和ES双引擎设计在零售选品中的应用实践
涅槃选品是京东零售内的战略级bigboss项目,项目主要致力于构建商品底层能力,打通提报、投放流程,实现选品的线上化、规则化与智能化;通过多方协作盘货,充分表达营销、品类、运营/采销等多方意志。
业务上的多样化需求,导致在项目初期面临以下众多技术难点与挑战。
Elasticsearch 可以更改 Mapping 吗?如何修改?
最近几个线上问题,都和 Mapping 字段更新有关系,问题列表如下:
问题 1:
Mapping新创建后,还可以更新吗?
问题 2:
群友 A:有人知道怎么在kibana里面给索引新增,删除字段吗?
群友 B: 不就是改 mapping 吗
群友 A:怎么改?
群友 B:写dsl啊…
群友 A:只能加不能删吧?
问题 3:
各位同学们 现在有个业务需求帮忙看一下?
需求:将 A 索引中一个为 String 的字段修改为 boolean。
例: sdry:"1" -> sdry:true。
问题 4:
join 类型怎么修改 join,append一个新的child?
业务需要 append join children,官方也说可以 append,但是又没给方案,我尝试都失败了。
四个问题都可以归结为 Mapping 更新问题,我们一起梳理实践一把。
ElasticSearch 索引设计指南
ElasticSearch(以下简称:ES )是一个分布式、RESTful 风格的搜索和数据分析引擎。区别于传统关系型数据库(比如:MySQL、Oracle 等),ES 在定义数据模型和搜索方式上非常灵活,数据模型可以采用静态数据映射与动态数据映射,搜索方式也支持多维度类型的搜索(结构化数据、非结构化数据、地理位置、指标参数等)。如果对事务性要求不高或者事务性操作在 RDMS 端,可以考虑使用 ES 作为海量数据存储与检索分析的平台。用户在创建新索引时,可以直接写数据,所有配置走默认,收缩自如、十分灵活;也可以精细化评估,按照自己的业务需求,提前做好索引的 settings 和 mappings 的设置,未雨绸缪、尽在掌握。
Elasticsearch 脚本安全使用指南
- Elasticsearch 脚本有没有替代方案?
- 如何在 Elasticsearch 端限制脚本的使用?
- 我们可以控制 Elasticsearch 脚本的使用吗?
Elasticsearch 检索性能优化实战指南
检索性能的优化涉及知识点比较零散,以官方文档的检索性能优化部分作为大框架和主线,结合实战经验和咨询经验用通俗易懂的语言做下解读。
Elasticsearch 如何实现相似推荐功能?
拿我们身边的算法“投喂”为主的头条、抖音、微信视频号等举例,如果你喜欢乒乓球,每天推送给你的都是乒乓球比赛视频集锦;如果你喜欢成功人士演讲,每天都是马云、马化腾、刘强东等商业巨鳄的演讲。
再拿电商的示例如下:比如我近期购买的吴军老师推荐的科普经典巨著《从一到无穷大》,京东会给我推荐樊登读书带火的书《微积分原理》。
Elasticsearch 线上问题实战——如何借助 painless 更新时间?
对于给定的时间字段值,如何用 painless 脚本实现减去 5 分钟的处理?
Elasticsearch 运行时类型 Runtime fields 深入详解
实战业务中,遇到数据导入后,但发现缺少部分必要字段,一般怎么解决?
比如:emotion 代表情感值,取值范围为:0-1000。
其中:300-700 代表中性;0-300 代表负面;700-1000 代表正面。
但实际业务中,我们需要:中性:0;负面:-1;正面:1。
如何实现呢?
Search indexing optimisation
Learn about the different optimisation techniques when building a search index.
基于MySQL binlog日志,实现Elasticsearch近实时同步实践
在我们的开发过程中,经常会在一个项目中使用多种数据库系统。在一些特定场景下,我们希望把数据从一种数据库,同步到另一种异构的数据库,以便进行数据分析统计、完成实时监控、实时搜索等功能。这个异构数据源同步的过程称为Change Data Capture(变化数据捕获)。
我们本文讨论的是Source为MySQL、Target为ElasticSearch的场景下,进行增量和全量同步操作过程。众所周知,MySQL数据库凭借其性能卓越、服务稳定、开放源代码、社区活跃等因素,成为当下最流行的关系型数据库,但是在数据量级较大或涉及到多表操作时,亦或是需要根据地理位置进行查询时,MySQL通常不能给我们很好的支持。
为了解决MySQL查询缓慢、无法查询的问题,我们通常采用ElasticSearch等进行配合检索。在传统方式中,将MySQL同步数据到ElasticSearch通常采用的是双写、MQ消息等形式,这些形式都存在着耦合高、性能差、丢失数据等风险。
所以我们需要探索出一套对业务无侵入的MySQL同步至ElasticSearch异构数据库的解决方案。本文将分别从增量同步、全量同步两个层面进行探讨。
Elasticsearch 线上问题排查——搞一天了,明天还要给客户解决这个问题
Elasticsearch 线上实战问题排查复盘。
如何从 0 到 1 搭建代码全局检索系统
前端团队的项目有几百个左右,想要查找某个接口 API 或者某个 NPM 包以及一些关键词在哪些项目中使用到,需要每个开发同学在自己维护的项目里全局搜索一遍或者写个脚本跑一遍,然后统计上去,费时费力。本文将为你介绍全局检索系统。