当前位置: 首页 > 面试题库 >

ElasticSearch批量插入/更新操作

袁法
2023-03-14
问题内容

我不确定是否upsert在批量索引编制中正确使用了该操作。

我的要求是:

{ "update": {"_id": "610946100"}}\n
{"doc": {"id":"610946100","uri":"/0/0/1/6/4/0/610946100.xml"}, "doc_as_upsert" : true}\n

网址是: http://localhost:9200/anIndex/aType/_bulk

我想我错过了文档中的某些内容,但仍然找不到如何进行此操作的方法

我想要 在索引中创建以上文档,或者如果存在则对其进行更新。


问题答案:

如果您通过批量API将索引中的记录添加为

{ "create": {"_id": "someId"}}\n
{"id":"someId","uri":"/0/1/3/2/1/0511912310/511912310.xml"}\n

那么如果该ID已经存在于索引中,您将获得一个异常。如果要添加或 替换 文档(取决于文档是否存在),则应按以下方式进行请求

{ "index": {"_id": "someId"}}\n
{"id":"someId","uri":"/0/1/3/2/1/0511912310/511912310.xml"}\n

如果已经存在具有相同索引和类型的文档,则创建将失败,而索引将根据需要添加或替换文档

https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/docs-
bulk.html
5.3版



 类似资料:
  • 我正在写一个数据挖掘程序,可以批量插入用户数据。 当前SQL只是一个普通的批量插入: 如果发生冲突,如何进行更新?我试过: 但它抛出

  • 问题内容: 有没有办法像在MySQL服务器上那样批量执行查询? 将无法使用,因为如果该字段已经存在,它将直接忽略该字段并且不插入任何内容。 将无法工作,因为如果该字段已经存在,它将首先对其进行处理,然后再次进行处理,而不是对其进行更新。 可以使用,但不能批量使用。 因此,我想知道是否可以批量发出这样的命令(一次不止一次发送)。 问题答案: 您 可以 使用INSERT … ON DUPLICATE

  • 是否可以在ElasticSearch中进行批量原子更新? 我知道定期批量更新不是原子的,正如这里所指出的:https://www.elastic.co/guide/en/elasticsearch/guide/current/bulk.html#bulk 还有其他方法可以自动更新多个文档吗?即。要么所有更新都发生,要么没有更新。

  • 问题内容: 我使用以下查询在弹性中创建了一个索引: 我想使用.net NEST库将文档插入此索引。我的问题是.net更新方法的签名对我没有任何意义。 Java库对我来说意义更大: 在NEST中,和类来自哪里?我制作的这些C#类代表我的索引吗? 问题答案: 并且是为POCO类型的泛型类型参数 在Elasticsearch()中表示文档,然后 执行部分更新时,在Elasticsearch()中表示文档

  • 问题内容: 我需要从每日CSV文件中消耗大量数据。CSV包含约12万条记录。使用hibernate模式时,这会减慢爬行速度。基本上,当使用saveOrUpdate()时,hibernate似乎在每个单独的INSERT(或UPDATE)之前执行SELECT。对于使用saveOrUpdate()持久存储的每个实例,在实际的INSERT或UPDATE之前发出SELECT。我能理解为什么要这样做,但是在进

  • 问题内容: 我正在寻找一种对重复键Update(例如SQL Server 2005中的操作)执行插入的解决方案。此操作可能会插入或更新大量条目。SQL Server 2008有一个整洁的操作MERGE,可以很好地完成它,问题是我们只能使用SQL Server2005。 我研究了标准的解决方案,但是它们都不是很好,因为它们假定只有一个入口已更新/插入。 有谁知道在旧版SQL Server中复制MER