![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Elasticsearch
文章平均质量分 75
记录 ELK 的学习过程
水的精神
一件事,要么不做,要么做到极致。
展开
-
ES 8.x 向量检索性能测试 & 把向量检索性能提升100倍!
向量检索不仅在的跨模态检索场景中应用广泛,随着chat gpt的火热,es的向量检索,在Ai领域发挥着越来越大的作用。 在本文中,妥妥滴都是干货,因为不仅有性能测试,还有搜索性能优化。这里预告以下,在千万规模数据中做的测试,将检索性能提升了将近100倍。在本文中可以看看性能是如何被优化的。原创 2023-10-24 21:11:24 · 824138 阅读 · 10 评论 -
ElasticSearch Query_string + match_phrase 在千亿级检索中的思考
在舆情分析的应用场景中,数据规模通常在千亿以上。使用Elasticsearch 去构建搜索引擎,做相关的分析,面临着非常多的挑战。 先介绍一下,在舆情分析场景中,要用到的是 match phrase语法,针对文章做精准的句子匹配! 在这篇文章中,我会先讲一下我们面临的挑战;接着我会带着问题,分析一下 match phrase语法的检索过程;根据检索原理,考虑可以做哪些优化;以及针对我们面临的挑战,我的一些优化方法。原创 2023-03-20 01:27:19 · 918052 阅读 · 0 评论 -
ES优化实战-通过开启copy_to提升一倍的检索性能
在对text字段进行搜索的时候,假如你需要对多个text类型的字段搜索,例如 文章的标题和文章的内容,这两个字段。 在这种情况下,是可以开启copy_to来提速的。我测试的提速效果在百分之五十左右。 它是将这两个字段copy到一个字段上,然后进行分词处理。之所以会快,就是因为如果你多个字段,要做多次的查询,如果合并到一个字段上,只需要做一次查询。 但是请注意,它会额外花费比较多的磁盘资源!原创 2022-09-25 13:06:36 · 1742 阅读 · 0 评论 -
ES优化实战 - 小操作节省百分之三十以上的磁盘空间
un_source 是去掉存储的数据。在查询的时候,不反回数据。数据只做索引和倒排这些。这样做的意思是,只让es做检索,不做存储。es检索完,只返回一个id。然后选用Hbase这样的数据库联动。Hbase擅长的是根据key来取值,花费的是磁盘。不占太多其它资源。原创 2022-09-25 12:10:29 · 384943 阅读 · 8 评论 -
elasticsearch 单索引 6T 20亿 数据搜索实战与优化深度思考
我负责公司的检索平台的开发兼运维工作。 我们的场景是对互联网上的设备数据进行检索。数据量大概有20亿,对应的存储量大概有6T(不带副本的情况下)。单条数据会有上百个字段,用来刻画网络设备画像。 我们有比较特殊的需求:我们有频繁更新的需求,每天几千万,甚至上亿。 我们并不能做根据时间的滚动索引。因为后进的数据需要把前边的数据做覆盖。所以就没有办法做索引的生命周期管理。 我们有频繁的聚类搜索的需求。 我们想要基于这些数据,做到普通检索1秒以内,聚类检索3秒以内。写这篇文章的...原创 2022-01-20 01:07:51 · 5592 阅读 · 0 评论 -
再仔细品品Elasticsearch的向量检索
我在es一开始有向量检索,就开始关注这方面内容了。特别是在8.X之后的版本,更是如此。我也已经把它应用在亿级的生产环境中,用于多模态检索和语义检索,以及RAG相关。这篇文章再带大家品一品es的向量检索。原创 2024-03-24 22:17:44 · 2396 阅读 · 1 评论 -
为什么不要使用elasticsearch
互联网上有很多文章,都在讲为什么要使用elasticsearch,却很少有人讲为什么不要使用elasticsearch。作为深入研究elasticsearch四年,负责公司万亿级别检索的操盘手,借着这篇文章,给大家分享一下,为什么不要使用elasticsearch。原创 2024-03-12 20:58:55 · 1651 阅读 · 1 评论 -
python 如何使用 NLPchina 开源sql插件,提供代码
分享一段使用python,通过使用发送post请求的方式,来从es集群中获取数据。不用使用 elasticsearh,仅需要导入request和json包即可。原创 2024-03-12 19:45:10 · 441 阅读 · 0 评论 -
kibana配置 dashbord,做可视化展示
一、环境介绍这里我使用的kibana版本为7.17版本。语言选择为中文。需要已经有es,已经有kibana,并且都能正常访问。二、背景介绍kibana的可视化界面,可以配置很多监控统计界面。非常方便,做数据的可视化展示。这篇文章,做一个最简单的demo入入门2.1 添加通过配置一个通配符,来选择要匹配的索引。选择一个时间戳字段,一般用于统计图的X轴。然后选择创建。原创 2024-03-06 19:56:05 · 1128 阅读 · 0 评论 -
kibana 上dashbord 和discover 时间快 or 慢 8小时,处理方案
在es库中的数据的时间是正确的。但是在kibana的discover展示页面上是错误的,错了8个小时。我这里是快了8个小时。这个问题非常难受,因为看起来,总是差8个小时,特别是查看日志的时候,总有一种错觉,筛选的时候,总要加上或者减去8小时。在kibana上,discover页面上,看到的数据的时间快了8小时,我的数据的实际时间是10点钟。多半是因为kibana所在服务器上的时区不对。这里提供一个方案,简单的通过修改kibana上的时区,就可以解决问题了!我的是因为运维使用docker部署的kibana。原创 2024-03-06 19:23:49 · 701 阅读 · 1 评论 -
如何做好chatFile?如何做RGA?
向量语义检索,跟具有普适性,用户的问法可能和文档中的内容描述方式不一样,此时语义检索可以发挥好的作用。而BM25在用户输出的内容和文档强相关的时候,往往能获取到更好的效果,例如用户问题中的诸多关键词,都在原文中出现了,往往召回效果会比向量语义检索更好。很短的词语在向量模型中,会丢失语义,因为在embedding的时候,就是用段落做的embedding。暂时认为回答多的正确。然后把问题,和回答不对的结果,回答正确的结果,做比对。目前在问题生成上,存在较多的问题,经常发现,模型自己给的问题,无法正确回答!原创 2023-12-26 20:09:25 · 1040 阅读 · 0 评论 -
ES慢查询分析——性能提升6 倍
生产环境频繁报警。查询跨度91天的数据,请求耗时已经来到了30+s。报警的阈值为5s。经过问题排查,提供了优化方案。最后请求时间降到5s内。原创 2023-12-26 20:03:55 · 2738 阅读 · 0 评论 -
如何在使用logstash导出的时候,包含索引名称和_id
我还需要把原来数据中的_id保存下来,在新的集群中导入的时候,指定_id。这里,我的需求是,把es中的数据导出到本地文件中,一行一个json。logstash配置文件如下。这里有一个配置文件!原创 2023-12-25 19:14:41 · 542 阅读 · 0 评论 -
数据从A集群,使用logstash迁移到B集群,如何保持_Id一致
有时候,我们在跨集群数据同步的时候,需要保持_id一致。这里直接给出一个配置文件。原创 2023-12-25 19:09:35 · 447 阅读 · 0 评论 -
windows下logstash从文件中读数据写入es报错 Error: No such file or directory - :/dev/null
logstash从文件中读数据写入es报错 Error: No such file or directory - :/dev/null原创 2023-12-23 21:31:01 · 879 阅读 · 0 评论 -
ES集群G1回收器,堆空间无法被回收问题
ES堆空间不足的问题,困扰了我有两年的时间。dump堆去分析,也未能分析出来,堆到底是被什么占用了。我把堆空间给了31.9G,这是指针压缩生效的临界值,如果再大就指针压缩失效了。痛苦的是,随着时间的增长。堆空间在持续增长,且GC和FGC都不能把堆给回收掉。GC完了还是28G。堆空间不足以后,毋庸置疑的是,会带来各种各样的问题。垃圾回收更频繁(STW会让卡着),节点通信不稳定,节点假离线、同时对写入和查询都会频繁的触发堆的父级熔断。不管是哪个问题都会导致服务不可用,大量的慢查询。原创 2023-12-20 23:55:06 · 1183 阅读 · 0 评论 -
一个正则快速找到在ES中使用profile的时产生慢查询的分片
在es中使用profile分析慢查询的时候,往往因为分片过多,或者因为查询条件太复杂,分析的结果几十万行。在kibana上点半天,也找不到一个耗时长的分片。kibana上可以通过正则来匹配。其实我们只需要匹配到耗时大于10秒的请求。原创 2023-12-20 19:55:28 · 745 阅读 · 0 评论 -
elasticsearch在执行完forcemerge 后查询性能可能更差了,为何?
通常我们认为一个 LSM 架构的系统,其文件数量 merge 到更少总会带来查询性能的提升,但Elasticsearch 和 lucene 确实有他的复杂之处,最近遇到一个案例,当索引 forcemerge 为 1 之后其查询延迟和查询 QPS都降低了,主要原因是, forcemerge 之后,查询语句构建 query cache的代价更大。题外话:在 query cache 的 skip 机制是个很好的策略,但250并不适用所有场景,目前 Elasticsearch 没有可以调节的接口。原创 2023-12-17 18:13:49 · 579 阅读 · 0 评论 -
高级调优:查找并修复 Elasticsearch 慢查询
Elasticsearch 是一个非常灵活且功能丰富的应用程序,它提供了许多不同的数据查询方法。但是,您是否遇到过查询速度低于预期的情况?对于像 Elasticsearch 这样的分布式系统,可能会有各种影响查询性能的因素,包括负载平衡器设置、网络延迟(带宽、网卡/驱动程序)等在内的各种外部因素。在本篇博文中,我将讨论导致慢查询的原因,以及如何在 Elasticsearch 的上下文中识别它们。转载 2023-12-17 17:50:20 · 1079 阅读 · 0 评论 -
windows下使用logstash同步跨网络集群的数据
我们在开发环境过程中,可能会遇到这样的场景。我们可以通过VPN访问远端的机房。有可能还要跨机房访问。这篇文章演示使用logstash,在windows上,去同步跨网络环境的不同机房之间的数据。进入解压后的bin目录中,然后在上边直接cmd,进入打开控制台。在控制台中,启动logstash,并指定配置文件。适合同步小规模数据。在个界面,找到和es对应的版本去下载即可。这里边的日志,是已经同步完数据了。下载logstash并解压。原创 2023-12-17 15:34:49 · 525 阅读 · 0 评论 -
2023年12月5日,北京elastic Meetup 腾讯分享的搜索优化经验
这里整理了 2023年12月5日,北京elastic Meetup 腾讯分享的搜索优化经验。原创 2023-12-17 15:00:43 · 1050 阅读 · 0 评论 -
如何做搜索?如何做搜索优化?如何在搜索领域快速成长?
三年多的搜索研发经历,万亿级集群管理经历,集群优化搜索优化经历。将生产环境的集群,检索性能提升了数十倍。也遇到过大大小小的生产事故。在工作中有幸能够得到前谷歌中国首席架构陈老师的指导。在搜索方面,自己也积累的蛮多的经验。 在篇文章中,先粗略的分享一下,在搜索方面,在使用elasticsearch做搜索方面,应该有哪些知识储备。如何做搜索?如何做好的搜索?如何提升性能。原创 2023-12-17 12:13:20 · 1307 阅读 · 0 评论 -
向量做语义检索,效果测试
语义检索的效果确实不错,特别是在非关键词命中的情况下。通过做数据的文本嵌入,然后用向量的做召回。虽然我搜索的是“中国的首都”,但是把命中北京的也给我召回了,大大提升了召回效果。这里是利用es的机器学习模块,并用eland将模型导入到ES。我已经导入过模型了,在我的其它文章中,已经写过。这里只是用模型做文本嵌入。其中我用全文模糊匹配。召回top10,命中的数据。使用上一个步骤,将问题转向量。该演示模型为m3e。这大概就是语义检索的魅力。原创 2023-12-11 23:36:56 · 596 阅读 · 1 评论 -
关于对向量检索研究的一些学习资料整理
这里整理了一些我掌握和学习过的向量检索相关的文档。对向量检索,语义检索感兴趣的同学们,可以进来开看看,有任何问题都可以探讨。原创 2023-12-10 15:23:04 · 1470 阅读 · 0 评论 -
为什么要用向量检索
之前写过一篇文章,是我个人到目前阶段的认知,所做的判断。我个人是做万亿级数据的搜索优化工作的。一直在关注任何和搜索相关的内容。这篇文章再来讲讲为什么要使用向量搜索。在阅读这篇文章之前呢,最好已经知道向量检索是怎么回事。如果还不知道,可以学习这篇文章。原创 2023-12-10 13:11:54 · 1113 阅读 · 0 评论 -
期待一下elasticsearch还未发布的8.12版本,由lucene底层带来的大幅度提升
现在是北京时间23年12月10日。当前es最新版本还是es8.11版本。我们可以期待一下不久的将来,es的8.12版本看到大幅度的检索性能提升。受益于 Lucene 9.9版本,内核带来的大幅提升!此次向量检索利用底层指令fma会性能提升5%。并且还提供了向量点积的能力。重点较大幅度提升了多关键词匹配topK的搜索场景。原创 2023-12-10 11:41:38 · 540 阅读 · 0 评论 -
ES java client 搜索报错 entity content is too long[xxx1] for the configured buffer limit [xxx2]
应用同事反馈,在使用es的滚动导出的时候,一共有5567条数据,但是实际上只拿到4567条数据,并且打断点,最后一次是获取到了456条数据。所以可以判断,中间少了1000条数据。因为滚动导出是每次1000条。初步判断,是少了一次数据解析,有可能第一次构建请求的时候,没有解析数据。实际上并不是,看报错如下图,是 entity content is too long[xxx1] for the configured buffer limit [xxx2]原创 2023-12-09 13:47:23 · 716 阅读 · 0 评论 -
ES 如何将国际标准时间格式进行格式化与调整时区
需求,日志收集的时候,时间格式是国际标准时间格式。形如yyyy-MM-dd'T'HH:mm:ss.SSS。 (2023-12-05T02:45:50.282Z)这个时区也不对,那如何将此类型的时间,进行格式化呢?本篇文章体统一个案例,可以格式化各种类型的时间,已经调整到各个时区。原创 2023-12-09 12:08:30 · 1232 阅读 · 0 评论 -
Elasticsearch SQL插件调研与问题整理
通过大量调研,普遍的方案,都是open Distro,但是版本停留在了7.10版本。最近在做一件事情,需要能够降低es的学习使用成本,给公司更多的人带来方便,即使不懂es也能用起来。同时,更严重的问题是,in原语它解析成了should。等号被解析成了match_phrase,始终是要分词的,在分词之后,又走的检索逻辑,且要计算距离。而在之前的版本中,sql能力很弱,并且属于白金版本的内容。对于开发人员来说,应该sql能力是必备的能力,属于基本不用再学的东西。在sql语句中,等号的原语,应该是精准匹配。原创 2023-12-03 14:45:20 · 1341 阅读 · 2 评论 -
CPU标高load标高;linux故障日志排查
一般情况下,服务器不太会出问题。但是遇到特别诡异的情况,多半是服务器本身的问题。遇到问题,我们不能一味的去排查应用,中间件。更应该想到服务器的问题。否则很容易出现南辕北辙的情况。这次分享的是一次服务器故障,导致的线上问题。涉及到了服务器的内存的排查,和CPU的排查。现象:线上es集群突然报警。本来一个机器上两个节点,但是在早晨6点48分,突然cpu飙升到100,期间没有什么查询,正常量的写入。关闭一个节点以后,负载正常,但是再启动节点,集群负载还是很高。请求命中此台机器,触发了很多的慢查询告警。原创 2023-12-03 13:59:35 · 1371 阅读 · 0 评论 -
ES通过抽样agg聚合性能提升3-5倍
一直以来,es的agg聚合分析性能都比较差(对应sql的 group by)。特别是在超多数据中做聚合,在搜索的条件命中特别多结果的情况下,聚合分析会非常非常的慢。一个聚合条件:聚合分析请求的时间 = search time + agg timeN个聚合条件:聚合分析请求的时间 = search time + agg time * N搜索的数据范围越大,聚合请求时间越长。搜索条件命中的数据越多,聚合请求的时间越长。聚合请求时候非常吃cpu 和io资源的。原创 2023-12-02 17:04:30 · 1640 阅读 · 0 评论 -
elasticsearch 内网下如何以离线的方式上传任意的huggingFace上的NLP模型(国内避坑指南)
es自2020年的8.x版本以来,就提供了机器学习的能力。我们可以使用es官方提供的工具eland,将hugging face上的NLP模型,上传到es集群中。利用es的机器学习模块,来运维部署管理模型。配合es的管道处理,来更加便捷的处理数据。但是在国内操作,根据官方文档或者根据官方博客操作,有无穷无尽的坑。看着官方的文档写的很清楚,实际上操作的时候,还是操作不下来。这里写一个闭坑指南。在你上车体验ES的机器学习之前,看看我这篇文章,肯定是会有收获的。因为我已经花了时间,踩了坑,并解决了它。原创 2023-12-02 12:22:54 · 3255 阅读 · 4 评论 -
ES-ELSER 如何在内网中离线导入ES官方的稀疏向量模型(国内网络环境下操作方法)
在线的方式,在国内下载也麻烦,下载速度也慢。对于一般的生产环境,基本上也是网络隔离的。我这里已经点击过下载了,这里需要一点时间下载。等待下载完成,再部署模型。这里其实是把准备好的模型,导入到集群中。ES官方训练了稀疏向量模型,用来支持语义检索。直接把链接放在浏览器上,就可以去下载。(我用官方提供的地址,根本没有找到模型文件)然后在config目录下,新建一个model目录,把上边下载的模型,都都放进去。然后在kibana的机器学习界面,找到模型管理,点击下载。这里注意,es官方提供了两个版本。原创 2023-12-02 10:06:42 · 1051 阅读 · 0 评论 -
Elasticsearch中的语义检索
语义搜索是一种解读单词和短语含义的搜索引擎技术。语义搜索的结果将返回与查询含义相匹配的内容,而不是与查询字面意思相匹配的内容。语义搜索是一系列的搜索引擎功能,包括从搜索者的意图及其搜索上下文中理解单词。这种类型的搜索旨在根据上下文更准确地解读自然语言来提高搜索结果的质量。语义搜索借助和人工智能等技术,将搜索意图与语义相匹配,从而实现这一目标。原创 2023-11-19 12:52:29 · 954 阅读 · 0 评论 -
Elasticsearch同义词最佳实践
毫无疑问,使用同义词是搜索工程师工具箱中最重要的技巧之一。尽管新手有时会低估同义词的重要性,但几乎所有搜索系统都离不开它。与此同时,人们有时仍会低估与使用同义词相关的一些复杂情况和微妙情形,甚至高级用户也不例外。用好同义词库,在搜索的过程中,在提升召回率上,有着奇迹般的力量。最近正在做同义词库的工作,在提升召回效果方面,确实有很大的贡献。本篇文章中,将会详细讲解如何使用,其中的坑,以及各种玩法的最佳实践。本篇博文还会回答一些有关同义词使用方法的常见问题原创 2023-11-18 15:44:44 · 1240 阅读 · 1 评论 -
下一代搜索引擎会什么?
现在是北京时间2023年11月18日。聊一聊搜索。说到搜索,大家首先想到的肯定是谷歌,百度。我把这些定义成上一个时代的搜索引擎。ChatGPT已经火热了有一年的时间了,大家都认为Ai搜索是下一代的搜索。但是AI搜索,需要的是很大算力,需要很大存储空间。至今为止又有多少个公司能够真的去做AI搜索呢?普通的公司又能够做什么呢?ChatGPT是大模型,它的数据总是停留在历史的某个时间点上,目前来看,它对新事物的了解还是很慢的,并不能时时刻刻把新的内容加入到知识库中。未来在更强大的算力进步下,或许会实现。原创 2023-11-18 15:27:26 · 1852 阅读 · 1 评论 -
将json数据导入到ES集群——解决方案对比&填坑日记
将json数据导入到ES集群——解决方案对比&填坑日记原创 2023-11-06 20:38:53 · 1280 阅读 · 0 评论 -
ES 8.x新特性一览(完整版)
在 2022 年 2 月 11 日,Elasticsearch(ES)正式发布了 8.0 版本,而截止到 2023 年 10 月,历经一年半时间,ES官方已经连续发布了多个版本,最新版本为 8.10.4。这一系列的更新引入了众多引人注目的新特性,按照功能模块和重要性进行整理,下面我们将介绍一些核心且引人瞩目的新功能。原创 2023-10-30 19:42:04 · 4217 阅读 · 0 评论 -
Elastic Universal Profiling
Universal Profiling 是Es提供的一种分析工具,可以根据官方描述,它基本上对业务是零侵入,运行成本极低的一个工具。就可以帮我们分析出来服务器上运行程序的好坏。可以给我们精准分析道每一个方法,每一行代码。可以让我们知道资源占用情况。 计算效率一直是软件专业人员最关心的问题,但在每一行代码都影响底线和环境的时代,有一个新的理由来关注它。提高软件效率可以带来更好的性能、更低的资源消耗、更低的成本和更低的排放。高效的软件不仅有利于企业,而且有利于企业。原创 2023-10-29 19:48:42 · 749 阅读 · 0 评论 -
elasticsearch一些重要的配置参数
整理了一些Elasticsearch重要的配置参数。原创 2023-10-29 18:30:30 · 397048 阅读 · 1 评论