首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用springboot插入到elasticsearch数据流时抛出错误“只允许在数据流中使用op_type为create的写操作”

是因为elasticsearch在7.x版本中移除了op_type参数,并且默认只允许使用create操作来插入数据。

在elasticsearch 7.x版本中,插入数据时不再需要指定op_type参数,而是通过请求的方法来确定操作类型。如果要插入新的文档,可以使用PUT请求,如果文档已经存在,则使用POST请求。

解决这个错误的方法是修改代码,将插入数据的请求方法改为PUT或POST,并且不再指定op_type参数。

以下是一个示例代码:

代码语言:txt
复制
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ElasticsearchService {

    @Autowired
    private RestHighLevelClient client;

    public void insertData() {
        IndexRequest request = new IndexRequest("index_name");
        request.id("document_id");
        request.source("{\"field1\":\"value1\",\"field2\":\"value2\"}", XContentType.JSON);

        try {
            IndexResponse response = client.index(request, RequestOptions.DEFAULT);
            System.out.println("插入成功:" + response.getResult().toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上述示例中,我们使用RestHighLevelClient来与elasticsearch进行交互。通过创建一个IndexRequest对象,并指定索引名称、文档ID和文档内容,然后使用client.index方法来插入数据。

需要注意的是,上述示例中的index_name和document_id需要根据实际情况进行替换。

推荐的腾讯云相关产品是腾讯云的云原生数据库TencentDB for Elasticsearch,它是基于开源的Elasticsearch构建的一种高可用、高性能、弹性伸缩的云数据库产品。您可以通过以下链接了解更多信息:

TencentDB for Elasticsearch产品介绍

希望以上信息对您有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一日一技:Elasticsearch批量插入时,存在就不插入

摄影:产品经理 买单:kingname 当我们使用 Elasticsearch-py 批量插入数据 ES 时候,我们常常使用 helpers模块里面的bulk函数。...如果_id 对应文档已经 ES 里面了,那么数据会被更新。如果_id 对应文档不在 ES ,那么就插入。 如果我想实现,不存在就插入,存在就跳过怎么办?...此时就需要在文档里面添加_op_type指定操作类型create: from elasticsearch import helpers, Elasticsearch es = Elasticsearch...} } helpers.bulk(es, generator(), index='xxx', doc_type='doc') 此时,如果_id 对应文档不在 ES ,那么就会正常插入...doc', raise_on_exception=False, raise_on_error=False) 其中raise_on_exception=False表示插入数据失败

4.9K30

Elasticsearch 7.X data stream 深入详解

上述 rollover、ILM 机制实现:都涉及多索引和别名关系。 官方强调:别名 Elasticsearch 实现方式存在一些不足(官方没有细说哪些不足。...3.4 Append-only 仅追加 仅追加:指只支持 op_type=create 索引请求,我理解是仅支持向后追加(区别于对历史数据删除、更新操作)。...7.2 不同点 数据流相对实体索引,有点“抽象层“概念,其核心数据还是存储 .ds 前缀后备索引。 以下操作,只适用于数据流数据流对应映射必须包含日期类型 @timestamp 字段。...ILM data stream 起到索引生命周期管理作用。...: 第一:批量 bulk 操作,必须使用create 指令,而非 index(使用 index 不会报错, 会把流当做索引处理了)。

1.7K60

Elasticsearch--数据索引

通过在所有节点配置文件设置action_create_indexfalse,可以关闭自动索引创建这个功能,默认是打开 通过在所有节点配置文件设置index.mapper.dynamicfalse...op_type控制索引操作"缺少即加入",当设置op_type create,如果索引指定id已经存在,那么索引操作就会失败 上面的op_type=create与直接使用_create API...自动ID创建: 前面提到创建索引可以指定ID,也可以不指定ID,如果不指定ID,那么ES会自动生成一个ID,并且把op_type更改为create。...这种操作仅推荐特殊情况下使用,如果在大量所以操作,每个操作都执行refresh,那是很耗费性能。 这一步是把缓冲区请求数据刷文件系统缓存上。...这时,就会出现一定等待时间,如果超过等地时间则返回并抛出错误,这个等待时间可以通过timeout设置: PUT /my_index/my_type/1?

1.6K60

Elasticsearch 之 数据索引

对于提供全文检索工具来说,索引一个关键过程——只有通过索引操作,才能对数据进行分析存储、创建倒排索引,从而让使用者查询相关信息。...通过配置文件设置action.auto_create_indexfalse,可以关闭自动创建index这个功能。...操作类型op_type ES通过参数op_type提供“缺少即加入”功能,即如果ES没有该文档,就进行索引;如果有了,则报错返回。...}' 手动刷新 由于ES并不是一个实时索引搜索框架,因此数据索引操作后,需要等1秒钟才能搜索。这里搜索是指进行检索操作。如果你使用是get这种API,就是真正实时操作了。...这种操作仅推荐特殊情况下使用,如果在大量所以操作,每个操作都执行refresh,那是很耗费性能。 Timeout超时 分片并不是随时可用,当分片进行备份等操作,是不能进行索引操作

863100

【天衍系列 04】深入理解FlinkElasticsearchSink组件:实时数据流如何无缝地流向Elasticsearch

Elasticsearch Sink ,您需要实现 SinkFunction 接口,以将 Flink 数据流数据发送到 Elasticsearch。... Elasticsearch Sink ,BulkProcessor 负责将 Flink 数据流数据批量发送到 Elasticsearch。...如果设置true,则允许重定向过程中发生循环重定向;如果设置false,则在检测到循环重定向,将会抛出异常。...如果设置true,则允许重定向过程中发生循环重定向;如果设置false,则在检测到循环重定向,将会抛出异常。...如果设置true,则允许重定向过程中发生循环重定向;如果设置false,则在检测到循环重定向,将会抛出异常。

86710

elasticsearch文档索引API(二)

" } ' 在这个请求op_type会被自动设置create,执行结果如下: ?...分布式 基于路由机制,索引操作将被定向主分片上并执行,主分片完成操作后,如果需要,再将更新操作分发到副本分片上。...默认情况下,只需要主分片处于活动状态,操作就会继续,开发者可以通过设置 index.write.wait_for_active_shards来动态地索引设置覆盖此默认值。...要只是需要更改每个操作此行为,则可以使用 wait_for_active_shards请求参数,参数有效值是 all或任何不大于副本分片数正整数,如果指定负值或者大于副本分片数数字将抛出错误。...操作响应 _shard字段显示复制成功/失败副本分片数量。 Noop Updates 当使用索引API更新文档,即使文档没有更改,也始终创建新版本文档。

88930

ElasticSearch权威指南学习(文档)

op_type=create { ... } 第二种方法是URL后加/_create做为端点: PUT /website/blog/123/_create { ... } 请求成功响应状态码是201...合并多个请求可以避免每个请求单独网络开销。如果你需要从Elasticsearch检索多个文档,相对于一个一个检索,更快方式是一个请求中使用multi-get或者mget API。...每个文档检索和报告都是独立 更新批量操作 就像mget允许我们一次性检索多个文档一样,bulk API允许我们使用单一请求来实现多个文档create、index、update或delete。...这对索引类似于日志活动这样数据流非常有用,它们可以以成百上千数据一个批次按序进行索引。...如果任何一个请求失败,顶层error标记将被设置true,然后错误细节将在相应请求中被报告 演示错误情况 POST /_bulk { "create": { "_index": "website

95030

Elasticsearch:REST API

简介 Elasticsearch ,所以数据都是以 JSON 格式来进行表述。这个和其它有些数据库,比如 Solr,它支持更多格式数据,比如 xml, csv 等。...我们可以直接使用如下命令来进行删除: DELETE twitte 当我们执行完这一条语句后,所有的 twitter 所有的文档都将被删除。...输入命令,我们需要特别的注意:千万不要添加除了换行以外空格,否则会导致错误。在上面我们使用 index 用来创建一个文档。...等我们运行完上面的指令后,我们可以 Kibana 查看到我们叫做 “bank_account” 索引。...Open/close Index Elasticsearch 支持索引在线/离线模式。 使用脱机模式群集上几乎没有任何开销地维护数据。 关闭索引后,将阻止读/操作

1.3K00

elasticsearch文档索引API(一)

,这个数组是副本分片上索引操作失败情况下相关错误数组 索引操作成功情况下,successful至少1。...这是来自官网介绍,但是实际操作,如果这样配置会抛出如下异常信息: java.lang.IllegalArgumentException: the [action.auto_create_index...小伙伴们应该知道,数据库锁有悲观锁和乐观锁之分: 悲观锁,顾名思义就是很悲观,每次操作数据都认为数据也会被其他线程修改,因此屏蔽一切有可能破坏数据完整性操作传统关系型数据库,常见行锁、表锁...乐观锁,顾名思义就是很乐观,认为每一次数据操作都不会发生并发访问冲突,因此不会锁定要操作数据资源,只是每次提交检查操作是否违反了数据完整性,Elasticsearch中就是采用了这种锁机制,使用乐观锁一个好处是可以提高系统吞吐量...Elasticsearch作为一个分布式系统,elasticsearch文档读写模型一文,我们已经向读者介绍了Elasticsearch读/模型,读者已经了解,一个操作主分片执行完成后,会被转发到其他副本分片上去执行

2.2K40

Flink 非确定性更新(NDU)问题探索和规避

例如用户定义源表,某个虚拟列字段调用了 RAND()、NOW()、UUID() 等函数;那么每次作业崩溃后重新运行,即使输入数据流完全一致,输出结果也未必相同。...此外,如果用户使用维表 JOIN,而外部维表随时更新,每次 JOIN 结果也可能不同。...例如我们有如下 MySQL CDC 数据源表,其中 op_type 是虚拟列,表示从 Debezium 元数据里读取本条记录类型:CREATE TABLE my_cdc_source (       ...因此, Flink 1.16 版本,社区特意对非确定性更新(Non-Deterministic Update,下文简称 NDU)问题做了系统性梳理(见 FLINK-27849),并提供了初步应对方案...总结Flink 社区 1.16 版本,对 NDU 问题做了初步检测和修复尝试(为了保证兼容性,需要手动开启),目前已经可以识别和处理多数问题场景,更多案例详见官方文档 流上的确定性。

2.4K30

Elastic Stack 实战教程 3:快照备份与恢复

快照有以下使用场景: 数据灾备:当发生误删索引数据情况,可以使用快照来还原;主集群无法正常工作,可以使用快照在备集群上恢复数据。...Kibana 提供了可视化操作界面,方便用户与 Elasticsearch 进行交互。 首先执行以下命令修改系统参数以满足 Elasticsearch 运行条件。...设置存储桶名字 es-snapshot,点击 Create Bucket。...docker exec -it 3snapshot_es01_1 bash 连接对象存储凭证存储 Elasticsearch keystore 使用以下命令 keystore 添加存储库访问凭证...创建完成后也以使用 verify snapshot repository API 验证存储库连接情况,如果验证成功,该请求将返回用于验证存储库节点列表;如果验证失败,则返回错误信息。

1.4K30

【Elastic】ES重建索引怎么才能做到数据无缝迁移呢?

背景 众所周知,Elasticsearch是⼀个实时分布式搜索引擎,⽤户提供搜索服务。...参数 op_type 参数控制着写入数据冲突处理方式,如果把 op_type 设置 create【默认值】, _reindex API ,表示写入时只 dest index添加不存在 doucment...,如果相同 document 已经存在,则会报 version confilct 错误,那么索引操作就会失败。...": "blog_lastest", "op_type": "create" } } 如果这样设置了,也就不存在更新数据场景了【冲突数据无法写入】,我们也可以把 op_type 设置...": "create" }, "conflicts": "proceed" } 我们可以故意把 op_type 设置 create,人为制造数据冲突场景,测试更容易观察冲突现象。

1.1K21

Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?

背景 众所周知,Elasticsearch是⼀个实时分布式搜索引擎,⽤户提供搜索服务。...参数 op_type 参数控制着写入数据冲突处理方式,如果把 op_type 设置 create【默认值】, _reindex API ,表示写入时只 dest index添加不存在 doucment...,如果相同 document 已经存在,则会报 version confilct 错误,那么索引操作就会失败。...": "blog_lastest", "op_type": "create" } } 如果这样设置了,也就不存在更新数据场景了【冲突数据无法写入】,我们也可以把 op_type 设置 index...": "create" }, "conflicts": "proceed" } 我们可以故意把 op_type 设置 create,人为制造数据冲突场景,测试更容易观察冲突现象。

5.1K10

读Hadoop3.2源码,深入了解java调用HDFS常用操作和HDFS原理

(new Path(resourceName), count); 二、深入了解HDFS文件流程和HDFS原理 文件操作方法比较多,本期我们以create方法例,来通过阅读源码深入了解下hdfs文件流程和原理...如果一个1MB文件存储一个128M,文件实际只是用了1M磁盘空间,而不是128M。...过期租约会导致租约持有者无法继续执行数据文件,除非进行租约更新。 既然每个客户端都有一个文件租约,那么HDFS如如何管理呢?比如有些客户端用户某文件后未及时关闭此文件。...[在这里插入图片描述] 1、创建文件 HDFS客户端一个新文件,会首先调用DistributedFileSystem.create()方法HDFS文件系统创建一个新空文件。...这个方法底层会通过调用ClientProtocol.create()方法通知Namenode执行对应操作,Namenode会首先在文件系统目录树指定路径下添加一个新文件,然后将创建新文件操作记录到

1.2K31

开始使用 Elasticsearch (1)

3.jpg 当我们执行命令,我们必须点击左边窗口里那个绿色播放按钮。命令所执行显示结果将在右边展示。接下所有练习,我们都将使用这样操作来进行。  ...使用一个命令同时获取 id 1 及 2 文档。 在上面当我们写入数据,我们有意识地把文档 id 命令写了出来。...输入命令,我们需要特别的注意:千万不要添加除了换行以外空格,否则会导致错误。在上面我们使用 index 用来创建一个文档。为了说明问题方便,我们每一个文档里,特别指定了每个文档 id 。...bulk 指令是高效,因为一个请求就可以处理很多个操作实际使用,我们必须注意是:一个好起点是批量处理 1000 5,000 个文档,总有效负载 5MB 15MB 之间。...29.jpg Open/close Index Elasticsearch 支持索引在线/离线模式。 使用脱机模式群集上几乎没有任何开销地维护数据。 关闭索引后,将阻止读/操作

1.2K70

springboot整合elasticsearch7.2(基于官方high level client)

前言 最近一个个人项目(传送门:全终端云书签)需要用到全文检索功能,目前 mysql,es 都可以做全文检索,mysql 胜在配置方便很快就能搞定上线(参考这里),不考虑上手难度,es 全文检索方面是完胜... 7.x 已经被弃用,8.x 中将完全删除 high level client 官方文档很清楚明了,虽然目前相关中文资料还很少,也能够上手用起来 本文主要内容如下: docker 部署 es...(支持 ik 中文分词) springboot 中进行增删改查 docker 部署 es(基于 linux) es 中文分词目前比较流行分词插件 ik(github 地址)。...假定当前/root 目录下 下载 ik release /root/es/ik 目录下,并解压到当前文件夹。...如果定义了,就必须在中指定部分依赖版本,否则会因为依赖版本不对出现各种莫名其妙错误,上面注释已经指出。

4K30

SpringBoot2 集成日志,复杂业务下自定义实现

一、日志体系集成 1、日志管理 系统开发,最关键一个组件工具就是日志,日志打印方便问题排查,或者生产事故回溯,日志记录用来监控并分析系统性能点,并以此为依据,不断对系统进行优化;同时基于用户操作日志...2、ELK日志体系 大型系统架构,ELK日志管理系统是系统必备功能,ELK-Stack是Elasticsearch、Logstash、Kiban三个开源软件组合,通常用来做日志分析,实时数据检索...ELK相关文章: SpringBoot2整合ElasticSearch框架 搜索引擎框架,ElasticSearch集群模式 基于Logstash全量或增量同步数据ES中间件 基于ELK体系核心操作...: bizNature:业务性质,即该日志是否有分析,或者营销推广操作,例如在在电商业务,浏览系列商品后是否推送广告; dataFlow:数据流向,即数据存储后是否向其他数据源推送,常见可能推送到MQ...或者Redis或者分析引擎,推荐类系统对关键日志实时性要求极高,可以基于此做用户行为实时分析; isAsync:是否异步处理,一些并发高接口中,避免日志记录成为性能问题一个因素; 其他相关参数都是十分常见

44020

Spring5---新特性(WebFlux)

数据流并没有发出,只有进行订阅后才会触发数据流,不订阅什么都不会发生 操作符 map 元素映射新元素 flatmap元素映射流,每个元素转换为流,把转换之后多个流合并为一个大流返回 SpringWebFlux...,返回0或者1个元素 3.Flux和Mono都是数据流发布者,使用Flux和Mono都可以发出三种数据信号:元素值,错误信号,完成信号; 错误信号和完成信号都代表终止信号,终止信号用于告诉订阅者数据流结束了...,两个不能共存 如果没有发送任何元素值,而是直接发送错误或者完成新型,表示是空数据流 如果没有错误信号,没有完成信号,表示是无限数据流 ---- 调用just或者其他方法只是声明数据流数据流并没有发出...对数据流进行一道道操作,成为操作符,比如工厂流水线 map 元素映射新元素 ---- flatmap元素映射流,每个元素转换为流,把转换之后多个流合并为一个大流返回 ---- SpringWebFlux...注解编程模型和函数式编程模型 使用注解编程模型方式,和之前SpringMVC使用相似,只需要把相关依赖配置项目中,SpringBoot自动配置相关运行容器,默认情况下使用Netty服务器 ---

1.6K20

Elasticsearch遇上BERT:使用Elasticsearch和BERT构建搜索引擎

在这篇文章,我们使用一个预先训练好BERT模型和Elasticsearch来构建一个搜索引擎。Elasticsearch最近发布了带有矢量字段文本相似性搜索。...另一方面,你可以使用BERT将文本转换为固定长度向量。一旦我们通过BERT将文档转换成向量并存储Elasticsearch,我们就可以使用Elasticsearch和BERT搜索类似的文档。...设置环境变量 你需要设置一个预先训练好BERT模型和Elasticsearch索引名作为环境变量。这些变量Docker容器中使用。下面的示例将jobsearch指定为索引名,以及....创建Elasticsearch索引 您可以使用create index API向Elasticsearch集群添加新索引。...这里要点是使用BERT将文档转换为向量。得到向量存储text_vector字段

2.3K20
领券