ElasticsearchCRUD使用(十九)【索引热身】

Elasticsearch 数据量大时如何优化查询性能? 在面试中,如果你被问到:“Elasticsearch(ES)在数据量很大的情况下(数十亿级别)如何提高查询效率?” 那么面试官其实是在测试你是否有实际使用 ES 的经验。为什么这么说?因为很多人以为 ES 性能非常强大,但实际上,在数据量达到几亿甚至数十亿条时,你可能会惊讶地发现,搜索一次需要 5~10 秒。而且,第一次查询特别慢,之后才变快,变成几百毫秒。这是为什么?本文将从 ES 的底层原理入手,逐步拆解大规模数据查询优化的方法。ES 性能优化没有“万能的参数”,不能指望改个配置就能让所有查询变快。但是 阅读详情

本文介绍如何使用索引预热与ElasticsearchCRUD。 预热对于最常用的查询很有用,可以帮助您提高性能。 在创建索引时,可以添加一个预热器,在索引之后添加或从索引中删除。 还可以在全局或每种索引类型中添加预热器。

创建索引时添加预热器

在创建索引时,可以加一个预热器。 IndexCreate方法为此提供了一个Warmers属性函数。 Warmers列表可以接受查询或聚合。

_context.IndexCreate<FastestAnimal>(
new IndexDefinition
{
    IndexWarmers = new IndexWarmers
    {
        Warmers = new List<IndexWarmer>
        {
            new IndexWarmer("filter_mph")
            {
                Query= new Query(
                    new Filtered(
                        new Filter(
                            new RangeFilter("speeddoublemph")
                            {
                                GreaterThanOrEqualTo= 50.0
                            }
                        )
                    )
                )
            }
        }
    }
}
);

在HTTP PUT请求中索引设置预热器到Elasticsearch

PUT http://localhost:9200/fastestanimals HTTP/1.1
Content-Type: application/json
Host: localhost:9200
Content-Length: 198
Expect: 100-continue

{
    "settings": {
        "analysis": {

        },
        "number_of_shards": 5,
        "number_of_replicas": 1
    },
    "aliases": {

    },
    "warmers": {
        "filter_mph": {
            "source": {
                "query": {
                    "filtered": {
                        "filter": {
                            "range": {
                                "speeddoublemph": {
                                    "gte": 50.0
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

为现有索引创建一个预热器

可以使用WarmerCreate方法将预热器添加到索引中。 如果index参数被定义,那么它是和所有名称的索引。

_context.WarmerCreate(new Warmer("all")
{
    Query = new Query(
        new MatchAllQuery()
    )
}, "fastestanimals");

预热器使用HTTP PUT请求添加到索引

PUT http://localhost:9200/fastestanimals/_warmer/all HTTP/1.1
Content-Type: text/plain; charset=utf-8
Host: localhost:9200
Content-Length: 26
Expect: 100-continue

{"query":{"match_all":{}}}

删除预热器

也可以从索引中删除预热器:

context.WarmerDelete("all", "fastestanimals");

发送如下:

DELETE http://localhost:9200/fastestanimals/_warmer/all HTTP/1.1
Host: localhost:9200
Content-Length: 0
Elasticsearch常用操作 POST dy_ry/dy_ry/AW-iwJ3Q83Kg86SdX-BN ---- 后面值是这条数据的 ID,前面。POST th/th/AW-n87eA83Kg86SdX-BV/_update ----更新某个字段值有就更新。POST th/th/AW-n89vM83Kg86SdX-BW/_update ---- 添加字段。"refresh_interval": "1s", ---- 刷新间隔,也可以设置-1。"number_of_shards": 1, ---- 分片数。***只查询索引结构。 阅读详情

相关推荐

树莓派CM4 PCIe扩展方案与ASM1184e芯片应用

PCIe(Peripheral Component Interconnect Express)是计算机硬件中重要的高速串行总线标准,广泛应用于存储、网络等设备连接。其核心原理是通过差分信号实现高带宽传输,PCIe Gen2 x1的理论带宽可达5Gbps。在嵌入式开发中,PCIe扩展技术能有效解决单板计算机接口不足的问题,特别适合树莓派等微型平台。ASMedia ASM1184e作为PCIe交换芯片,可将单个接口扩展为多个,支持热插拔且免驱动,极大提升了工程灵活性。通过PCIe交换机方案,开发者能在树莓派CM

weixin_42602368的博客 420

什么是 Elasticsearch 数据预热?

在 Elasticsearch 中,索引(Index)是一个包含相关文档的逻辑命名空间。它类似于关系型数据库中的表,但是更加灵活和动态。每个文档都属于一个索引,并且具有唯一的类型和标识符。索引允许用户按照自己的需求组织和存储数据,是数据存储和检索的核心组成部分。数据预热(Data Warmup)是指在实际查询到达之前,预先将索引和相关数据加载到内存中的过程。这个过程旨在优化查询响应时间和搜索性能,避免因数据未缓存在内存中而导致的冷启动延迟。

2401_84419325的博客 1411

新手必看:CiscoPacket Tracer从零搭建局域网(含ARP协议详解)

本文为网络新手提供了一份使用Cisco Packet Tracer从零搭建局域网的详细指南。通过构建基础网络拓扑、配置IP地址,并深入剖析ARP协议的工作原理,帮助读者理解IP地址与MAC地址的映射关系,掌握局域网通信的核心机制。

weixin_29275257的博客 203

ElasticSearch

【ElasticSearch】持续更新...

w_k_x110的博客 1747

保姆级教程:手把手教你为裕泰微YT8521 PHY芯片编写Linux设备树(DTS)节点与驱动

本文提供了一份详细的保姆级教程,手把手教你为裕泰微YT8521 PHY芯片编写Linux设备树(DTS)节点与驱动。从基础配置到RGMII接口的特殊设置,再到驱动开发的关键步骤和调试技巧,帮助开发者快速掌握PHY芯片的移植与开发。

weixin_33734785的博客 332

【机器学习实战中阶】音乐流派分类-自动化分类不同音乐风格

数据下载地址:https://www.kaggle.com/datasets/andradaolteanu/gtzan-dataset-music-genre-classification/data背景音乐。专家们长期以来一直在尝试理解声音以及是什么使一首歌曲与另一首不同。如何可视化声音。是什么使一个音调与另一个不同。这个数据集希望能提供实现这些目标的机会。内容原始流派 - 包含10种流派,每种流派有100个音频文件,每个文件长度为30秒(著名的GTZAN数据集,声音的MNIST)

2143

查询亿级数据毫秒级返回!牛逼哄哄的ElasticSearch是如何做到的?

点击上方石杉的架构笔记,右上角选择“设为星标”每日早8点半,技术文章准时送上公众号后台回复“学习”,获取作者独家秘制精品资料往期文章BAT 面试官是如何360°无死角考察...

石杉的架构笔记 4011

STM32CubeMX定时器进阶玩法:用编码器模式实现电机转速测量(附避坑清单)

本文详细介绍了如何使用STM32CubeMX配置定时器的编码器模式实现电机转速测量,包括硬件连接、CubeMX配置关键步骤、转速计算算法及常见问题解决方案。特别针对工业控制和机器人开发中的高精度需求,提供了实用的避坑清单和优化技巧,帮助开发者高效完成项目。

joy55的博客 203

Elasticsearch 启动预热

https://www.elastic.co/guide/en/elasticsearch/reference/7.x/preload-data-to-file-system-cache.html

kamactor的专栏 2011

UG\NX二次开发 获取三平面交点

//如果返回值不为0 则此三个面没交点 int three_faces_point(tag_t tagFace1, tag_t tagFace2, tag_t tagFace3, double *dou_x, double *dou_y, double *dou_z)

王牌飞行员_里海的博客 674

MC_SetOverride指令详细应用介绍(基恩士PLC)

基恩士KV系列PLC和松下总线绝对值伺服运动控制(详细配置+轴控完整ST源代码)

RXXW_Dor的博客 330

Elasticsearch 常规概念及底层原理

一、ES 分布式架构原理 ES设计的理念是分布式搜索引擎,底层实现基于Lucene,核心思想是在多台机器上启动多个ES进程实例,组成一个ES集群。 概念描述 接近实时:ES是一个接近实时的搜索平台,这就意味着,从存入一个文档直到文档能够被搜索到有一个轻微的延迟 集群(cluster):一个集群由多个节点(服务器)组成,所有节点一起保存全部数据,每一个集群有一个唯一的名称标识 节点(node):一个节点是一个单一的服务器,是集群的一部分,它存储数据并且参与集群的搜索功能,一个节点可以通过.

言七墨 865

OpenClaw人人养虾:发现与传输

客户端需要先"发现"Gateway 的地址和端口,才能建立连接。OpenClaw 支持多种发现(Discovery)和传输(Transport)机制。

王国平的博客 572

Elasticsearch数据预热:提速关键技巧

摘要:Elasticsearch的数据预热(Data Warming)通过提前将冷数据加载到内存缓存,优化查询性能,避免首次查询的磁盘I/O延迟。核心原理是执行轻量查询强制数据缓存。常用方法包括手动预热脚本、旧版Warmers API(已废弃)及ILM的warm阶段配置。预热效果在HDD环境中显著,SSD效果有限,需注意资源消耗和缓存失效问题。替代方案如冷热分层架构和预加载设置更高效。建议结合冷热数据分层与SSD硬件,预热作为辅助手段,关键业务可定时触发预热查询。(150字)

HTTP404_CN的博客 655

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Elasticsearch 预处理没有奇技淫巧,请先用好这一招!

1、上问题1.1 线上实战问题 1——字符串切分es可以根据_id字符串切分,再聚合统计吗 比如:数据1、_id=C12345 数据2、_id=C12456 数据3、_id=C31268...

铭毅天下Elasticsearch 6614

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Elasticsearch 查询优化策略有哪些

建立冷热索引库(可用固态硬盘存放热库数据,普通硬盘存放冷库数据),热库数据可以提前预热加载至内存,提高检索效率。控制字段的数量,业务中不使用的字段,就不要索引。如果业务场景中的过滤查询比较多,建议将。避免大型文档存储,默认最大长度为。设置大一些,以提高查询速度。不要返回无用的字段,使用。

让我们共同进步 364

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

es查询性能优化

1.如果条件允许,内存和cpu一定要足够多,要超过总数据量的1半以上最好,当然数据量很大的时候要在经常查询数据的2倍以上。 2.数据分离存储,经常查询的数据放一些索引,不经常查询的放一部分索引,然后通过唯一的id关联即可,需要查那些不经常查的数据的时候通过id查询即可,这里可以和hbase联合使用。把条件字段和经常查看的字段放在es中,不经常查看的放hbase中,这样既可以省es的空间,性能效果也俱佳 3.数据大时,每个索引的数据量不要太大,一般很大的时候可以每天一个索引,或者每月一个索引,具体看业务来

花&败 5627

ES的一些名称和概念总结

倒排索引的工作原理是这样的:当我们想要搜索包含特定关键词的文档时,Elasticsearch会首先在Term Dictionary中找到这个关键词,然后在Term Index中找到这个关键词在Term Dictionary中的位置。但是,设定索引的分片数量是一个需要仔细考虑的决策,因为一旦索引创建后,主分片的数量将无法更改,且过多的分片可能导致资源浪费及降低性能。在一些其他语言中,词干的概念也非常重要。例如,在俄语或者拉丁语中,通过改变词干的形式或者添加不同的词尾,可以表达出不同的语法关系和词性变化。

ALONG的博客 2098

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(4)

Elasticsearch Analyzer(分词器)是 Elasticsearch 中的一个关键概念,用于将文本数据分割成有意义的单词(词项),以便进行全文搜索和索引。分析器在索引和搜索时起着重要的作用,决定了词项如何被创建和存储。具体来说,Elasticsearch Analyzer 主要包含以下几个组件:1. 字符过滤器(Character Filters)字符过滤器用于在分词之前对文本进行预处理。它可以处理 HTML 标签、特殊字符的转换、替换或删除等操作。

m0_50308467的博客 1442

ElasticSearch提高查询效率

filesystem cache ES数据写入磁盘,查询时通过缓存(filesystem cache)调用 filesystem cache存储索引文件,分配内存越大ES的性能越高 从磁盘读速度是秒级别,从内存读性能是毫秒级别 想保证性能,机器内存至少是总数据量的一半 如果只有100G内存留给filesystem cache,索引数据最好控制在100G内,只走内存搜索 为了避免索引数据过大,写入ES的字段越少越好 不参与搜索的字段尽量保存在HBase中(HBase:支持海量数据在线储存) 数据预热 对于经

发发说代码 859

互联网大厂技术-elasticsearch(es)- 在数据量很大的情况下(数十亿级别)提高查询效率

这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问都会比较慢,比较卡么?所以你要是没玩儿过 es,或者就是自己玩玩儿 demo,被问到这个问题容易懵逼,显示出你对 es 确实玩儿的不怎么样?

码者人生的技术博客 2901

ElasticSearch基础介绍

es是一个使用java语言并且基于Lucene编写的搜索引擎框架,提供了分布式的全文搜索功能,提供了一个统一的基于restful风格的web接口。集群需要多少种配置(内存型/IO型/运算型),每种配置需要多少数量,通常需要和产品运营和运维测试商定,视业务量和服务器的承载能力而定,并留有一定的余量。一个合理的ES集群配置应不少于5台服务器,避免脑裂时无法选举出新的Master节点的情况,另外可能还需要一些其他的单独的节点,比如ELK系统中的Kibana、Logstash等。

qq_19462809的博客 5988

elasticsearch 索引 Warmer 管理

https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-warmers.html#removing 为什么要使用Warmer呢,这要看自己的数据和查询等条件,但是基本上都是有用的。在es启动时并不会加载任何数据,在查询前。因此,在查询前把需要的数据预加载到缓存中和启动I/O缓存(通过读硬盘上的segment数据

likui1314159的专栏 4429

Elasticsearch 常见问题的解决思路

Elasticsearch 常见问题的解决思路

jcoiwenwfkowe的博客 151

【ElasticSearch】查询慢问题

【ElasticSearch】使用过程中出现的查询慢问题

weixin_47541454的博客 4043

es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33869377的博客 976
上一篇: ElasticsearchCRUD使用(十八)【进行MVC搜索Elasticsearch高亮】
下一篇: TCP/UDP端口列表
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值