自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(734)
  • 收藏
  • 关注

原创 java.io.IOException: entity content is too long [xxx] for the configured buffer limit [1048576]

java 使用 es hight-level-client 连接集群 ,滚动导出数据报错。但是我不想批量太小,影响处理速度。解决方案2:自定义一个 requestOptions。:response内容太大。buffer装不下了。,我的是滚动导出数据,可以调小批量的大小。

2023-06-05 17:24:23 339

原创 白话ES搜索相关性问题

之前使用es,更多的是使用term查询,和agg聚合分析。对相关性关注较少。实际上es擅长的是做模糊搜索,相关性搜索。ES是一个开源的通用的检索工具,能满足百分之八十的需求。相关性这个问题,是一个非常有意思的问题,值得深思。搞清楚相关性打分规则,有利于提高召回内容的相关性。深入了解以后,能帮我们解决剩下的百分之二十的需求。

2023-06-05 01:53:47 986

原创 如何处理亿级图片排重(精准排重,相似排重)

图片相似度对比1、需求假如有一个图片池,存有1亿图片。给一张目标图片,在图片池中做匹配。判断一张图片是否在图片池中出现过。(完全一样)判断有没有相似的出现过。比如两张图相似度90,两张图片是在描述一件事情。2、需求实现方案对于以上需求,实现思路是:将图片转成向量,存放在ES中,去做以图搜图。但是在ES中的实现以图搜图,是用KNN实现的。KNN总会返回topN结果,在图片池中,哪怕真的不存在与目标一致的图片,但是仍然会返回与之最相似的图片。想要使用ES实现需求1很容易。

2023-06-02 13:30:39 1056

原创 使用openCV比对任意两张图片的相似度(亲测较准确)

比对两张图片的相似度。使用openCV实现。提供完整的代码案例。

2023-06-02 13:18:57 2006 2

原创 Exception in thread “main“ java.lang.UnsatisfiedLinkError: no opencv_java455 in java.library.path:

java 中使用 openCV,报错Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java455 in java.library.path:

2023-06-02 13:08:28 655

原创 Lucene Query Parser 语法

lucene的组合条件语法,看了网上很多文章,真的都太差了。还是官网清晰明了一点。

2023-04-16 00:12:29 295 1

转载 想优化ES检索,先了解底层Lucene,Lucene源码结构一览

把整个lucene项目代码结构过一遍,弄清楚每个大类大致负责什么工作。

2023-04-12 08:23:22 288

原创 ChatGPT 学习 ES & lucene 底层写入原理,源码

再也不用发愁不知道如何看 es底层写入原理了。我让chatGPT列出来了lucene的相关源码。并进行了解析。

2023-04-10 08:33:27 747

原创 ES forceMerge 强制段合并为什么会提升检索性能?

时间已经过去了许久,对检索的原理,对es集群的理解也有了更高的层次。再写一篇文章,来讲讲为什么会性能提升。讲讲段合并的适用场景,以及需要注意的事项。用的好了性能提升很多,用的不好,性能反而降低很多。

2023-04-09 10:56:46 594

原创 借助chatGPT强大的源码理解能力,来快速学习elasticsearch 7.11.1整体源码结构(用chatGPT学源码太香了)

当下,全文搜索引擎 Elasticsearch 在企业应用领域中越来越受欢迎。Elasticsearch 的内部实现采用了模块化的设计,其中不同的功能模块被组织到不同的包中。在本文中,我们将深入探讨 Elasticsearch 7.11.1 版本中每个包的主要内容和功能,以便更好地了解 Elasticsearch 的内部实现。这篇文章是我和chatGPT的聊天记录,可以看看chatGPT是如何给我讲源码的。也可以看看我是如何一步一步的引导chatGPT回答出更完美的答案的。讲真的,用chatGPT学源码太香

2023-04-02 11:25:53 3328 4

原创 让chatGPT当我的老师如何? 通过和chatGPT交互式学习,了解在ES中,一条JSON数据是如何写到磁盘上的

最近一直有一个问题,如鲠在喉。争取早一天解决,早一天踏踏实实的睡觉。 问题是:在ES中,一条JSON数据是如何写入到磁盘上的? 如何解决这个问题?我想到了chatGPT,还有lucene的学习资料。这篇文章,我打算用 QA的形式来分享这次学习探索过程,看看能否驯服chatGPT当我的老师。 文章我copy了我和chatGPT的聊天记录。 最后的结果还是挺不错的,虽然也有一些问题,但是大多数是对的。并且chatGPT也给列出来了ES中这部分源码的实现位置,只需要再花时间看看源码。

2023-04-01 18:17:30 9901 10

转载 全链路日志收集追踪方案 - 美团

一套非传统的基于 log_agent + Kafka + Flink + HBase的日志上报和存储架构能够很好地支持复杂的业务系统,天然支持分布式场景下众多应用的日志上报,同时适用于高流量的数据写入

2023-04-01 13:09:19 268

原创 美团 Elasticsearch 特定场景内核级改造优化分享

跟我一起学习,美团是如何对ES内核的 倒排链构建和合并做优化的。美团将构建倒排倒排链的过程提升了60倍,将倒排链合并的过程合提升了百倍。 这对搜索很多个关键词的场景,提供了一个内核改造的思路。 .

2023-04-01 10:53:56 488

原创 ES indexSort 原理源码解析

在上一篇文章中,是我对es indexSort的优化对检索性能提升的测试。测试结论是:好的情况下,会有50%的性能提升效果。这让我对它是如何做到的,产生了浓烈的兴趣。 在这篇文章中,结合源码对原理进行一个解析

2023-04-01 09:39:04 274

原创 2023 软考中级 数据库系统工程师 考试题型

软件等级考试 ,数据库系统工程师 ,历年考试题型

2023-03-28 23:33:46 819

转载 ES & Lucene 段合并相关参数

ES通过一些参数,来可以优化ES节点的IO压力。

2023-03-27 10:09:31 405

原创 ES 搜索优化测试 - indexSort 对检索性能提升50%

indexSort 是在写入数据的时候,根据某个字段做排序。我们可以理解为数据的预排序。在检索的时候,假如搜索正好是根据排好序的字段做排序的,那么将会有50%的检索性能提升效果。注意,不要在请求中返回 count数据总量。这样配合indexSort预排序,可以提前终止请求。提升效果在数据量非常大情况下,会非常明显!原理是触发了es的提前终止计算请求的机制。

2023-03-26 09:31:24 641

原创 ElasticSearch Query_string + match_phrase 在千亿级检索中的思考

在舆情分析的应用场景中,数据规模通常在千亿以上。使用Elasticsearch 去构建搜索引擎,做相关的分析,面临着非常多的挑战。 先介绍一下,在舆情分析场景中,要用到的是 match phrase语法,针对文章做精准的句子匹配! 在这篇文章中,我会先讲一下我们面临的挑战;接着我会带着问题,分析一下 match phrase语法的检索过程;根据检索原理,考虑可以做哪些优化;以及针对我们面临的挑战,我的一些优化方法。

2023-03-20 01:27:19 501

原创 Elasticsearch 用一张脑图来详细了解底层存储

从一张脑图中学习es的底层存储原理。知道都有哪些底层文件。

2023-03-20 01:15:53 166

转载 linux负载(load)问题详解 + 压测命令集

本文详解linux中的CPU负载问题,以及结合生产中的问题进行分析。并且提供了对应的压测命令,来复现生产环境中遇到的各种与CPU相关的问题!

2023-03-13 01:25:23 787

原创 腾讯千亿级别检索ES生产优化经验

腾讯系,ES内核优化好文推荐!

2023-03-13 01:16:16 169

原创 Elasticsearch 集群规划- 单台机器核心数计算公式

在做集群规划的时候,到底需要给集群的每个节点多少个核心数?这个问题一直困扰了我很久。最近一段时间做千亿数据,PB存储量集群规划的时候,突然想明白了这件事,大致可以用一个公式来计算! 我觉得这是一个非常重要的问题,非常值得重视。其实所谓的集群规划,无非就是根据数据量评估出需要的es节点数,每个节点应该需要多少的CPU,多少的磁盘,多少内存。

2023-03-08 08:35:56 617

原创 springBoot JPA代码生成器

通过IDEA+配置文件,根据数据库表结构快速生产Service、ServiceImpl、repository、repositoryImpl、自动生成常用的jpa增删改查等方法。大佬的帖子: Spring Boot JPA idea代码自动生成 其二。配置文件内容替换我的: Generate POJOs.groovy。7.所生产出来的java文件。我都上传,大家可以去看看。先前参考简书上的帖子,后经自己改良的配置生成。此时会让你选择要生成的保存目录。使用idea 生成代码步骤。

2023-02-16 13:08:40 660 1

原创 Lucene的代码目录结构

analysis模块主要负责词法分析及语言处理而形成Term。codecs模块主要负责之前提到的一些数据结构的实现,和一些编码压缩算法。包括skiplist,docvalue等。document模块主要包括了lucene各类数据类型的定义实现。index模块主要负责索引的创建,里面有IndexWriter。store模块主要负责索引的读写。search模块主要负责对索引的搜索。geo模块主要为geo查询相关的类实现util模块是bkd,fst等数据结构实现。

2022-10-01 13:30:00 515 2

原创 Es底层查询原理、数据结构、及性能分析

es 提供了非常强大而且易用的查询和分析能力,包括全文索引、模糊查询、多条件组合查询、地理位置查询等等,而且具有一定的分析聚合能力。因为其查询场景非常丰富,所以如果泛泛的分析其查询性能是一个非常复杂的事情,而且除了场景之外,还有很多影响因素,包括机型、参数配置、集群规模等等。本文主要是针对几种主要的查询场景,从查询原理的角度分析这个场景下的查询开销,并给出一个大概的性能数字,供大家参考Es是一个分布式外壳,实际上执行数据处理的是lucene。es的底层就是lucene。

2022-10-01 10:05:10 4819 4

原创 ES千亿级搜索实战-架构优化

不管什么数据库,在应对千亿级别以上的数据的实时检索场景,都会有一定的压力。ES是搜索引擎,优秀的设计理念能够提速,但是也会表现的力不从心。往往会出现,集群随着数据越来愈多,而变得越来越慢。通常数据在来到10亿,对于命中两三亿结果集的时候,搜索时间都到了5秒以上。在百亿的搜索场景下,效果更差,可能在10秒以上。来到千亿级别,效果就更差了,可能来到了几十秒。

2022-09-27 23:44:27 2939

原创 ES千亿级数据检索实战-搜索优化建议

本篇文章,提供Es搜索优化的思路,优化方向,不做过多的细节赘述。目前负责千亿级别的索引的搜索优化。以下内容,是我个人做es搜索的经验。这些内容是官网上看不到的东西。

2022-09-25 13:38:58 3837

原创 为什么要使用elasticsearch

起初最早接触es的时候,是听老师傅说:“es无所不能”。 也正是因为这句话,让我对es有了很强的好奇心。后边开始接触他,做10亿数据场景的搜索,做优化。再后来去看源码,然后有机会在es源码中做修改,添加功能。然后又接触2000亿数据级别的搜索,以及优化。 下边我来谈谈es不可抗拒的优势,以及如何做到无所不能。

2022-09-25 13:18:35 2450

原创 ES优化实战-通过开启copy_to提升一倍的检索性能

在对text字段进行搜索的时候,假如你需要对多个text类型的字段搜索,例如 文章的标题和文章的内容,这两个字段。 在这种情况下,是可以开启copy_to来提速的。我测试的提速效果在百分之五十左右。 它是将这两个字段copy到一个字段上,然后进行分词处理。之所以会快,就是因为如果你多个字段,要做多次的查询,如果合并到一个字段上,只需要做一次查询。 但是请注意,它会额外花费比较多的磁盘资源!

2022-09-25 13:06:36 1176

原创 ES优化实战 - 小操作节省百分之三十以上的磁盘空间

un_source 是去掉存储的数据。在查询的时候,不反回数据。数据只做索引和倒排这些。这样做的意思是,只让es做检索,不做存储。es检索完,只返回一个id。然后选用Hbase这样的数据库联动。Hbase擅长的是根据key来取值,花费的是磁盘。不占太多其它资源。

2022-09-25 12:10:29 1360

原创 ES优化实战- forceMerge搜索提升测试报告

对于历史不变的数据,段合并的效果是非常好的。它对普通查询(query_string)有着较大的提升,提升在10%~90%不等的效果,其中搜索条件命中的结果集越多,提升就越明显。段合并对聚合分析的提升也是较大的,提升在10%~80%,这是一个非常大的提升,例如聚合从16s到了3s。

2022-09-25 11:55:43 1033

原创 ES堆占用高问题分析与解决方案

千亿级检索,ES JVM参数调优,解决OOM问题。

2022-09-25 11:38:55 5623

原创 ES千亿级检索实战 堆OOM 问题深度分析

在特大规模的索引中检索,通常一次检索涉及到的分片数达到2000个左右。加上跨集检索,堆有非常大的压力,OOM的问题经常发生。本篇文章,对线上环境的堆进行深度分析,看看都有什么。 我使用prifile来分析查看堆快照。并结合目前我对es底层的了解,来分析堆中都有什么。

2022-09-25 11:00:14 1316

原创 ES在超多分片搜索场景下提升N倍 - 优化

es关于在集群中特大搜索范围的问题,源码中存在串性的问题。通过修改参数提升N倍。

2022-09-24 15:36:30 1864

原创 从源码来看ES shard 级别哪些不能命中缓存

从源码来看es shard级别的缓存,哪些情况不能命中缓存。

2022-08-30 17:25:32 463

原创 如何 dump JVM 堆快照 用来分析

dump jvm 堆

2022-08-23 01:10:39 1021 8

原创 es 官方诊断工具

官方给我们提供的工具,能够给我们输出一些有用的监控数据,包括了机器的CPU、磁盘的IO、网络的情况、JVM情况、线程池、分片、磁盘使用情况、索引情况等等。上边是官方文档,有指导如何使用它来给我们的es做一个健康检查(体检)。我看网上的文章也是翻译官方文档。个人觉得还是直接看官网更好一些。美中不足的是,是这些指标数据,只是一堆指标数据。需要一些懂这些指标数据的人,来研判它,才能得出结果。看出es集群都有哪些问题。希望以后能有时间,和这个诊断工具结合做一个es指标的研判工具,能够得出结论性的内容。...

2022-08-02 11:00:00 499

原创 es 读流程源码解析

es 读流程源码解析,每一步都经过了断电调试。

2022-08-01 17:40:24 1502 5

原创 如何ES源码中添加一个自己的API 流程梳理

如何自己在es源码上做二次开发,添加新功能?而API应该如何添加呢?es的调用链路比较复杂,它不是简单的MVC结构。

2022-08-01 15:45:03 687

原创 es DELETE index 源码分析

elasticsearch源码解析。本文所写内容为实战经验,是我一步一步断点调试出来的结论。因为我们有一个更高的需求,需要去改它的源码。所以必须确保每一步都是正确的!

2022-08-01 15:12:06 1147

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除