中间件与数据库:Elasticsearch
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 的结合,为我们提供了一个强大的工具,以更智能的方式进行数据检索和分析。
Elasticsearch 8.X 如何依据 Nested 嵌套类型的某个字段进行排序?
希望在查出的结果后, 对结果进行后处理,对tags列表,根据depth进行排序。
ES分片均衡策略分析与改进
Elasticsearch 的分片均衡是指将索引的分片均匀地分布在集群中的各个节点上,以实现负载均衡和高可用性。