话题中间件与数据库 › Elasticsearch

中间件与数据库:Elasticsearch

探究:Elasticsearch 文档的 _id 是 Lucene 的 docid 吗?

之前在与研发进行 ES 使用优化的过程中,研发的同事饶有兴致的在会议后问了我这么一个问题:我们写入 ES 的 _id 字段和 lucene 中使用的 docid 是一个内容么?

图解 Elasticsearch 的 Fielddata Cache 使用与优化

在 ES 使用的几个内存缓存中,fielddata cache 算是一个让人头疼的家伙。

作为和 query cache 和 request cache 一样不受 GC 控制的内存使用者,fielddata cache 虽然也有 indices.fielddata.cache.size 的设置来阻止过度使用,但是默认是不限制的。

并且,当 fielddata cache 达到 indices.fielddata.cache.size 设定值的时候,虽然有类似LRU的清理算法,但是官方还是建议你进行手工清理。

那么 fielddata cache 是被什么内容使用了呢?它的作用是什么呢?我们结合官方的一些资料扒一扒。

浅谈Elasticsearch的入门与实践

本文主要围绕ES核心特性:分布式存储特性和分析检索能力,介绍了概念、原理与实践案例,希望让读者快速理解ES的核心特性与应用场景。

Elasticsearch Filter 缓存加速检索的细节,你知道吗?

ES 进行信息检索的时候,boolean 查询组合条件有 must/must_not/should/filter四个操作。

其中 must 和 filter 的用途都是用于过滤必要符合的条件,但是 filter 在查询过程中不算分并且可以进行缓存,这样逻辑简单又可以加速的查询方式经常得到官方的提倡。

可是,只有 filter 的条件可以被缓存么?这里的缓存是属于哪一部分?

缓存有什么样的进入和淘汰机制?怎么去监控缓存的使用情况?

深入解析 Elasticsearch IK 分词器:ik_smart 和 ik_max_word 的区别与应用场景

破解 IK 分词器的秘密:如何选择 ik_smart 和 ik_max_word 模式?

Elasticsearch 自动插入东八区默认时间实现

在 Elasticsearch 中,虽然没有直接设置字段默认值的机制,但可以通过其他方式实现类似的功能。

Elasticsearch ILM 热节点迁移至冷节点 IO 打满、影响读写解决方案探讨

ILM(索引生命周期管理) 遇到热数据迁移至冷节点时造成 IO 打满影响读写的情况。

Elasticsearch 企业级实战 01:Painless 脚本如何调试?

在企业级应用中,Elasticsearch 常常被用来处理复杂的数据查询和操作。

深入解析 Elasticsearch 8.X 索引模板:从传统到可组合模板的全面指南

在 Elasticsearch 中,索引模板用于定义索引的创建预设,包括映射、设置和别名等。

Elasticsearch 提供了两种类型的索引模板:传统模板(Legacy templates)和可组合模板(Composable templates)。

了解这两种模板的使用及其互动方式,对于有效管理索引至关重要。

Elasticsearch 数组全量实战操作指南

在 Elasticsearch 中处理复杂数据类型如数组时,提供了极高的灵活性,但同时也带来了一定的复杂性,尤其在使用脚本进行高级查询和数据操作时。

本文旨在通过一系列实战案例,展示如何有效地在 Elasticsearch 中使用脚本来处理数组类型的字段。

Elasticsearch8实践: 新功能和特性解析

技术研发中心平台架构团队关于Elasticsearch 8.x功能与特性的分享。介绍了ES8.x在性能提升、成本降低及新增特性方面的优势;同时为降本增效,中间件搜索团队升级了二向箔搜索引擎服务平台以支持ES8.x的使用。

Elasticsearch 8.x 存储有无压缩?能压缩到多少?

文章主要介绍了Elasticsearch的压缩功能以及压缩算法。默认情况下,Elasticsearch使用LZ4压缩算法进行数据压缩,但也可以选择best_compression算法以获得更高的压缩比。文章通过实验证明,LZ4算法可以将存储空间压缩到一半,而best_compression算法可以将存储空间压缩到原始空间的35%。对于对压缩比要求较高的情况,推荐使用best_compression算法。同时,通过优化建模参数等方式可以进一步提高压缩效果。

Elasticsearch 使用误区之二——频繁更新文档

这篇文章介绍了在使用Elasticsearch时频繁更新文档的挑战和步骤,并提供了一些性能优化建议。文章指出,更新操作涉及重新索引,而不是简单的原地修改,这会增加磁盘I/O和计算资源的使用。同时,标记为删除的文档在段合并前仍然占用空间,增加了存储负担。文章中的截图进一步解释了为什么随着更新文档的次数增加,存储占据磁盘空间也会增加,以及为什么删除文档后存储占据磁盘的空间也会增加。段合并之后,磁盘空间会骤降。

为了优化性能,文章提出了两个建议。首先,对于用户行为数据(如浏览次数、点赞数),可以合并多次更新为一次批量更新。建议设置一个合理的批量更新间隔,比如每隔5分钟更新一次,而不是每次用户操作后立即更新。其次,在电商平台中,对商品信息进行批量更新。可以使用 bulk API一次性更新多个文档,减少单次请求的开销。

此外,对于不需要实时可见性的索引,建议增加刷新间隔,比如设置为30秒或60秒。可以通过设置refresh_interval来实现。

拥抱 Elasticsearch:给 TiDB 插上全文检索的翅膀

知乎的孙晓光老师在TiDB Hackathon 2019中获奖作品TiSearch的介绍。全文检索是搜索引擎的基本能力,但当前TiDB还无法实现全文检索需求。为了解决这个问题,孙晓光团队采用整合Elasticsearch的方式扩展TiDB的全文检索能力。他们在短短一天的Hackathon时间内成功实现了这一功能。这项功能可以帮助用户更准确、快速地搜索到想要的内容。

ES使用edge n-gram实现高效前缀搜索

本文介绍了使用基于"edge n-gram"的分词策略对Elasticsearch进行优化的案例。作者通过生成以用户输入词语开头的n-gram索引,实现了优化的自动完成体验和提高的搜索相关性。这种优化策略适用于多语言,能降低不必要的匹配,提高搜索精度。通过应用edge_ngram分词器,将单词分解为以单词开头的一组子字符串,通过这种方法进行前缀搜索,能快速响应用户输入并提供相关建议。这种方法易于配置,可以根据需求调整n-grams的大小。

Failing to Auto Scale Elasticsearch in Kubernetes

A story of operational failure in large scale Elastisearch installation including the root cause analysis and mitigations that followed.

首页 - Wiki
Copyright © 2011-2025 iteam. Current version is 2.145.0. UTC+08:00, 2025-08-25 07:41
浙ICP备14020137号-1 $访客地图$