当前位置: 首页 > 知识库问答 >
问题:

在弹性搜索批量api中,额外的操作参数去哪里?

白文彬
2023-03-14

我正在为elasticSearch中的随机dataloss构建数据回填脚本。我只想在备份的索引中添加丢失的文档;新版本可能已经存在,我不想丢失任何更新。

elasticSearch索引api允许我指定不更新记录的OpType:https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-index例如[opType=创建]

我正在尝试使用批量api来提高效率:https://www.elastic.co/guide/en/elasticsearch/reference/6.6/docs-bulk.html

我搞不清楚的是在批量api中把“opType”放在哪里。

它是在元数据字段中,所以看起来像下面这样吗?

{'index': { '_index': indexName,'_type':'data','_id':

还是我把它放在别的地方?


共有1个答案

傅越
2023-03-14

正如您所引用的链接中所解释的,如果您想使用与opType: create相同的语义学,您需要使用create命令而不是indexone:

 change this
      |
      v
{ 'create': { '_index': indexName, '_type': 'data', '_id': <my Id>} }
{ data for item }
 类似资料:
  • 我有一个简单的<code>csv<code>文件,它有4个字段,serial_num、post_code、lat、lon,例如: 我需要批量插入到< code>elasticsearch中。lat lon字段需要在单个geo_point字段中定义,因此我创建了如下映射: > 索引为串行数据 类型为widget }} 我试图使用来插入数据,因为我认为我有一个定义的映射。如果我将lat定义为双精度或l

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 如何检查无痛脚本映射参数中是否存在键。在下面的查询中,检查<code>a。toString()键存在于参数中我尝试了所有方法,但都没有成功。请帮帮我 映射: 查询:

  • 我使用Elasticsearch允许用户输入要搜索的术语。例如,我要搜索以下属性'name': 如果使用以下代码搜索或,我希望返回此文档。 我尝试过做一个bool must和做多个术语,但它似乎只有在整个字符串都匹配的情况下才起作用。 所以我真正想做的是,这个词是否以任何顺序包含两个词。 有人能帮我走上正轨吗?我已经在这上面砸了一段时间了。

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 当我执行ps-aef grep elasticsearch HeapDumpOnOutOfMemoryError时看到了这一点 501 373 47 1 0 2:29pm ttys004 0:04.14/usr/bin/Java-xms4g-xmx4g-xss256k-djava.awt.headless=true-xx:+useparnewgc-xx:+useparnewgc-xx:+usepa