ElasticsearchCRUD使用(十五)【批量插入数据】

excel学习--导入txt数据 导入数据如下txt文件,该文件以制表符间隔每列数据。 在Excel中“数据”-“从文本“选项,进行数据导入。 3.选择【分割符号】-【制表符】-【常规】,即可完成 阅读详情

本文介绍如何使用别名和bulk插入大量文档来设置Elasticsearch索引。 批量插入大量文档时,可以通过关闭刷新间隔(RefreshInterval="-1")并关闭复制来提高性能。 插入完成后,根据您的要求将这些设置设置为所需的值。

要创建索引,使用TestDto类。 这被映射到testdtos_v1索引和testdto类型。 然后将一个别名testdtos添加到索引中。 这是非常有用的,如果需要实时索引,或者数据类型更改。 搜索客户端使用别名。创建索引时,将设置RefreshInterval和NumberOfReplicas属性。 这些值被设置为使得刷新被关闭并且复制也被关闭。 这些建议可以在Elasticsearch文档中找到。

public void CreateIndexWithAlias()
{       
    IElasticsearchMappingResolver elasticsearchMappingResolver = new ElasticsearchMappingResolver();
    elasticsearchMappingResolver.AddElasticSearchMappingForEntityType(typeof(TestDto), new ElasticsearchMappingTestDto());
    using (var context = new ElasticsearchContext( ConnectionString, new ElasticsearchSerializerConfiguration(elasticsearchMappingResolver, true, true)))
    {
        context.TraceProvider = new ConsoleTraceProvider();

        context.IndexCreate<TestDto>(
            new IndexDefinition
            {
                IndexAliases = new IndexAliases
                {
                    Aliases = new List<IndexAlias>
                    {
                        // alais maps to default index name
                        new IndexAlias("testdtos")
                    }
                }, 
                IndexSettings = new IndexSettings{RefreshInterval="-1", NumberOfReplicas = 0}
            }
        );
    }
}

索引的映射可以通过实现ElasticsearchMapping类从默认映射更改。 任何索引或类型可以在这里为任何DTO类设置,然后将映射添加到上下文中。 只要上下文存在,该映射就被用于该类。 只需要使用ElasticsearchMappingTestDto映射来创建索引,否则使用别名,它与ElasticsearchCRUD中的默认设置相匹配。

public class ElasticsearchMappingTestDto : ElasticsearchMapping
{
    public override string GetIndexForType(Type type)
    {
        return "testdtos_v1";
    }
}

可以使用_settings API在Elasticsearch中查看设置:

http://localhost:9200/_settings

"refresh_interval":"-1"和"number_of_replicas":"0"已根据需要进行了更改。

{
    "testdtos_v1": {
        "settings": {
            "index": {
                "creation_date": "1422473302831",
                "uuid": "luOwcuQiRyqxX3IvTTovWg",
                "number_of_replicas": "0",
                "number_of_shards": "5",
                "refresh_interval": "-1",
                "version": {
                    "created": "1040299"
                }
            }
        }
    }
}

TestDto类具有以下映射:

{
    "testdtos_v1": {
        "mappings": {
            "testdto": {
                "properties": {
                    "description": {
                        "type": "string"
                    },
                    "id": {
                        "type": "long"
                    },
                    "info": {
                        "type": "string"
                    }
                }
            }
        }
    }
}

现在创建了索引,100个批量HTTP请求中添加了一百万个文档。 批量请求的最佳大小以及每个批量请求中文档的最佳数量取决于每个文档和Elasticsearch安装的大小。 SaveChanges方法发送批量请求。

public void DoBulkInsert()
{
    // Add a million records
    long id = 1;
    for (int i = 0; i < 100; i++)
    {
        for (int t = 0; t < 10000; t++)
        {
            var item = new TestDto
            {
                Id = id,
                Description = "this is cool",
                Info = "info"
            };
            _elasticsearchContext.AddUpdateDocument(item, item.Id);
            id++;
        }
        // add data ...
        _elasticsearchContext.SaveChanges();
        Console.WriteLine("Saved:" + (i + 1) * 10000 + " items");
    }
}

批量插入完成后,将重新启动刷新,并将复制激活到所需的量。

public void UpdateIndexRefreshIntervalTo1S()
{
    _elasticsearchContext.IndexUpdateSettings
    (
        new IndexUpdateSettings
        {
            RefreshInterval = "1s",
            NumberOfReplicas = 1
        }
    );
}

然后可以查看设置,并更新两个属性值。

http://localhost:9200/_settings
{
    "testdtos_v1": {
        "settings": {
            "index": {
                "creation_date": "1422473302831",
                "uuid": "luOwcuQiRyqxX3IvTTovWg",
                "number_of_replicas": "1",
                "number_of_shards": "5",
                "refresh_interval": "1s",
                "version": {
                    "created": "1040299"
                }
            }
        }
    }
}

现在,使用别名的索引可以进行搜索或任何操作。

Opencv计算相机响应函数(Camera Response Function)与Radiance 本文主要用于记录自己在学习CRF过程中遇到的一些问题。 CRF模型 I=f(V(t⋅L))I=f(V( t\cdot L))I=f(V(t⋅L)) 其中III为相机灰度值Intensity,LLL为环境中irradiance,ttt为曝光时间,VVV为相机镜头参数,fff为相机响应函数CRF。 有些论文中认为相机镜头参数是线性的不考虑,但有些考虑了衰减即靠近图像边缘亮度会暗一些,但没有看到二者同时计算的,如果同时计算两个非线性的函数,我觉得可能会有不确定性,在这里还请教一下了解的朋友。 控制 阅读详情

相关推荐

手把手教你解决Windows 10网络驱动器无法访问问题(附详细排查步骤)

本文详细指导Windows 10用户解决网络驱动器无法访问的常见问题。通过从现象快速定位到系统排查,提供了从检查网络连通性、修复凭据权限到调整高级设置的完整步骤,特别是针对“找不到网络路径”等错误,帮助用户高效恢复对共享资源的访问。

weixin_29233857的博客 516

es批量导入大量数据

问题1:通过restAPI导入数据在数据量非常小的情况下也可以使用,一次性导入100万条数据,这个可能要很长时间,想要在短时间内导入大量数据。 https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html#bulk 这篇文章简单介绍了批量导入数据的操作 我的改进 1、首先生成导入的数据文件,文件是json的格式,最后一定要多一行回车 {"index":{"_index":"test2","_type":"_doc"}} {"nam

qq_42977353的博客 1万+

3张RTX 4090就能跑!BAGEL-7B多模态模型本地部署避坑指南(附Flash Attention安装技巧)

本文详细介绍了如何在3张RTX 4090显卡上本地部署BAGEL-7B多模态模型,包括硬件配置、环境设置、多卡并行优化及常见问题解决方案。特别提供了Flash Attention安装技巧和显存优化策略,帮助开发者高效运行这一开源多模态模型,实现文本与图像生成任务。

1a2s3d4f5g的博客 652

[玩转ES] ES批量/全量导入数据

将mysql-connector-java-8.0.11.jar copy到logstash/bin/mysql目录下 1.2.2 JDBC 同步配置 1.2.2.1 全量更新 文件名称: init-mysql2es.conf 1.2.2.2 增量更新 文件名称: sync-mysql2es.conf 1.2.3 运行脚本 导入成功 kibana 查看已经导入成功 [1] mysql (全量)数据导入到 elasticsearch [2] 通过Logstash实现mysql数据定时增量同步到ES..

OxYGC 5122

ptrade量化策略之沪深300指数增强

本策略的核心是在沪深300股票池中选股,选择的股票都是市值比较大,业绩比较好的白马股,根据市场相对位置以及基本面因子来选择股票

qq_29301281的博客 1190

逐行逐句进一步了解SurroundOcc(一)

通过分析中的模型构建过程,理解了从配置文件到模型实例化的整个流程。构建过程的核心是通过build和等函数,逐步将配置文件解析并生成模型的各个模块对象,最终组合成一个完整的模型结构。这一过程涉及多个类和函数的调用,其中函数是生成对象的关键,它能够从配置字典中提取必要信息并生成对应的类实例。

lovely_yoshino的博客 8110

Elasticsearch 批量导入数据

前言 Elasticsearch 是一款非常高效的全文检索引擎。 Elasticsearch 可以非常方便地进行数据的多维分析,所以大数据分析领域也经常会见到它的身影,生产环境中绝大部分新产生的数据可以通过应用直接导入,但是历史或初始数据可能会需要单独处理,这种情况下可能遇到需要导入大量数据的情况 这里简单分享一下批量导入数据的操作方法与相关基础,还有可能会碰到的问题,详细内容可以参考 官方

3万+

YOLO11改进|卷积篇|引入SPDConv

YOLO11中添加SPDConv卷积

A1983Z的博客 3696

ElasticSearch(11)bulk批量操作与导入数据

1 项目环境准备 springboot整合es:项目代码说明 2 bulk批量操作 都是使用add()方法实现的 未执行之前: package com.yy.esdemo; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.delete.DeleteRequest; import or

учёба 4539

基于 InceptionNeXt 模块增强的 YOLOv8 模型:针对多尺度目标检测的改进与实现

modules.py。

know_F0727的博客 203

基于LLM【M3】驱动的自动化攻击智能体AK(受控使用)

摘要:文章实测了基于大模型的目标驱动型云攻击智能体,展示攻击者仅需输入业务目标(如"窃取BigQuery数据")即可自动完成SSRF、令牌解析、数据导出等全链条攻击。研究发现:(1)攻击编排范式已从固定脚本升级为自适应路径;(2)传统基于IOC的防御与新型攻击存在结构性错位;(3)防御需转向元数据加固、跨服务行为序列检测和AI驱动的紫队演练。实验在授权靶场使用合成数据,验证了攻击智能体"监督者模型+专业执行组"的协作模式,强调防御体系需从单点检测升级为攻击链理解能力。

云上笛暮 306

探索Elasticsearch的无限可能 —— 强大的ElasticsearchCRUD工具箱

探索Elasticsearch的无限可能 —— 强大的ElasticsearchCRUD工具箱 项目介绍 在大数据时代,高效、灵活的搜索引擎变得至关重要。ElasticsearchCRUD是一个专为.Net开发者设计的强大库,它极大地简化了与Elasticsearch这一分布式搜索和分析引擎交互的复杂度。通过一组全面且易于使用的API,该项目提供了一站式的解决方案,涵盖了从基本的数据创建、读取、...

gitblog_00046的博客 467

路径规划 | 图解A*、Dijkstra、GBFS算法的异同(附C++/Python/Matlab仿真)

图解A*、Dijkstra、GBFS算法原理,分析三种算法异同,提供C++/Python/Matlab仿真实现

FRIGIDWINTER的博客 2万+

ElasticsearchCRUD翻译系列之(一): ElasticsearchCRUD 介绍

ELASTICSEARCH CRUD .NETPROVIDER 翻译自(原文地址: https://damienbod.com/2014/09/22/elasticsearch-crud-net-provider/) 本文介绍了ElasticsearchCRUD NuGet包的使用。ElasticsearchCRUD便于你通过对实体的插入、删除、修改从Elasticsearch中查找单个记录...

weixin_30580943的博客 123

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ElasticsearchCRUD使用(七)【Elasticsearch中的实时重建索引】

该文章演示了如何使用ElasticsearchCRUD在Elasticsearch中进行现场重建索引。 reindex使用扫描并滚动获取数据,然后使用批量插入更新到新的索引。 reindex支持别名映射,使得可以进行实时索引。设置文档搜索引擎和索引AdventureWorks2012用于填充搜索引擎的数据。 从Entity Person添加person索引。 此代码创建一个新的索引persons

极客神殿 1394

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

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

ElasticsearchCRUD使用(十一)【Elasticsearch同义词分析器】

本文介绍如何使用ElasticsearchCRUD在Elasticsearch中设置和使用自定义分析器。 创建具有自定义同义词词元过滤器的分析器并将其添加到索引中。 如果您搜索任何同义词,您将找到所有可能的文本的所有匹配。创建自定义同义词分析器在ElasticsearchCRUD中使用自定义分析器,过滤器或分词器创建索引非常简单。 强类型的类配置可用于所有类型以及所有默认可能性的常量定义。 在下面的

极客神殿 979

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ElasticSearch系列之批量插入与更新

本文介绍工作中Python版常用的高效ES批量插入、更新数据方式。

算法小生 4404

es数据批量导入

在我们项目上线之前,我们需要把数据库中的数据一次性的同步到es索引库中,但是当时的数据好像是1000万左右,一次性读取数据肯定不行(oom异常,内存溢出),当时我就想到可以使用线程池的方式导入,利用CountDownLatch来控制,就能避免一次性加载过多,防止内存溢出。通过这样的方式,可以有效地将数据批量导入到 Elasticsearch,同时避免内存溢出,提高导入操作的稳定性和效率。性能调优:根据具体的需求和环境条件对线程数量和批处理大小进行调优,找到适合的平衡点,既提高导入速度又避免 OOM。

qq_42727051的博客 1044

JAVA elasticsearch批量插入

【代码】JAVA elasticsearch批量插入。

前方的路在刚开始 3006

批量写入数据到Elasticsearch

批量写入到Elasticsearch会提高写入性能,减少Elasticsearch io压力。执行文档批量请求时,首先需要初始化 Elasticsearch Client,其次创建 BulkProcessor ,设置 BulkProcessor 参数,最后关闭processor。

老码农的博客 3107

elasticsearch通过文件批量导入数据

elasticsearch通过文件批量导入数据

进击的豌豆的博客 3882

ElastaticSearch -- es批量插入数据

对象集合可以转换成 List,再批量插入es,就能统一成通用的方法了。上面的例子使用的是具体的对象集合 List。

Cyms,BgXmSfXtsj !!!! Battle Each Moment !!!! 863

ES: 数据增,删,改,批量操作

文档的部分更新 | Elasticsearch: 权威指南 | ElasticES的新增和修改可以看做是一样,存在则修改,不存在则新增.修改数据的方式主要有两种。

zhuchunyan_aijia的博客 1万+

使用python生成大量数据写入es数据库并查询操作(聚合)

使用python生成大量数据写入es数据库并查询操作(聚合)

IT之一小佬的博客 3724

ES 批量插入数据 bulk

引入依赖 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.4.0</version> <exclusions&g

哈士奇 5881
上一篇: ElasticsearchCRUD使用(十四)【ElasticsearchCRUD搜索查询和过滤】
下一篇: ElasticsearchCRUD使用(十六)【Elasticsearch聚合】
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值