中间件与数据库: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.
Elasticsearch 的基数统计在大数据量下有什么办法能做到 100% 准确度吗?
一个线上问题引发的思考和反复验证 \x26gt;\x26gt;
极限网关助力好未来Elasticsearch容器化升级
极限网关助力好未来Elasticsearch容器化升级
Elasticsearch index 设置 false,为什么还可以被检索到?
列式存储是一种存储数据的方式,它可以提高对特定字段的聚合和排序操作的效率。相比行式存储,列式存储只需要读取相关列的数据,而不需要加载整个文档的所有字段。这种存储方式在处理大量数据时更加高效。然而,对于未被索引的字段,查询效率较低,因为需要遍历整个列的数据来匹配查询条件。因此,在使用列式存储时,需要合理使用索引和doc_values设置来提升查询性能和效率。
Elasticsearch 在滴滴的应用与实践
目前,我们的 ES 引擎已在滴滴内部统一应用于所有在线检索场景,并在稳定性方面成为大数据架构部的标杆。
Elasticsearch 8.X 向量检索和普通检索能否实现组合检索?如何实现?
Elasticsearch 8.X 组合检索企业级实战问题及方案探讨 \x26gt;\x26gt;
Elasticsearch 悬挂索引解析与管理指南
一道 Elasticsearch 8.X 面试题引发的思考和梳理\x26gt;\x26gt;
数据库不应放在容器中?- B站Kubernetes有状态服务实践(Elasticsearch/Clickhouse)
本文基于Elasticsearch/Clickhouse在B站生产环境的容器化/K8s编排能力落地, 将阐述为何我们需要进行容器化/on k8s, 容器化中遭遇的挑战以及解决方案, 落地的技术细节以及收益。
Using LlamaIndex with Elasticsearch for Enhanced Retrieval-Augmented Generation (RAG)
Retrieval-Augmented Generation (RAG) is a technique that combines retrieval and generation capabilities. It effectively addresses some issues of large language models (LLMs), such as hallucinations and knowledge limitations. With the evolution of RAG, vector technology involved in RAG has gained attention, and vector databases have become more widely recognized. Established database providers now support vector retrieval, including Elasticsearch, which recently added support for vector retrieval in its latest version. This article introduces the deployment of Elasticsearch and embedding models in RAG, as well as how to use Elasticsearch for document indexing and retrieval within the LLM framework LlamaIndex.
Elasticsearch 如何实现文件名自定义排序?
在数字时代,图像数据的管理已成为数据架构的一部分。然而,随之而来的挑战是如何有效地索引和检索这些图像文件。
这不仅涉及存储,更重要的是如何根据特定的属性(如文件名中的数字)进行排序,以便用户可以按照预期的顺序查看图像。
Langchain 与 Elasticsearch:创新数据检索的融合实战
在信息爆炸的时代,有效地检索和处理数据变得至关重要。Langchain 和 Elasticsearch 的结合,为我们提供了一个强大的工具,以更智能的方式进行数据检索和分析。