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

当id等于特定字段时,尝试使用Elasticsearch批量API

袁帅
2023-03-14

我正在尝试将文档批量插入到索引中。我需要_id等于我正在插入的特定字段。我正在使用ES v6.6

POST productv9/_bulk
{ "index" : { "_index" : "productv9", "_id": "in_stock"}}
{ "description" : "test", "in_stock" : "2001"}

GET productv9/_search
{
  "query": {
    "match": {
      "_id": "2001"
    }
  }
}

当我运行批量语句时,它运行时没有任何错误。但是,当我运行搜索语句时,它没有得到任何点击。此外,我还想以同样的方式插入许多其他文档。

共有1个答案

谷梁星雨
2023-03-14

我建议创建一个摄取管道,该管道将根据库存字段的值设置文档的id。

首先创建管道:

PUT _ingest/pipeline/set_id
{
  "description" : "Sets the id of the document based on a field value",
  "processors" : [
    {
      "set" : {
        "field": "_id",
        "value": "{{in_stock}}"
      }
    }
  ]
}

然后您可以在批量调用中引用管道:

POST productv9/doc/_bulk?pipeline=set_id
{ "index" : {}}
{ "description" : "test", "in_stock" : "2001"}

通过调用GET productv9/_doc/2001,您将获得您的文档。

 类似资料:
  • 如何告诉Elasticsearch在按术语搜索时排除某个字段? 当一个普通用户搜索摩托车时,什么都不应该返回,但如果他们搜索史密斯,这两个都应该返回。 有能力搜索认证字段的用户如果搜索摩托车将返回标记,如果搜索史密斯将返回标记。

  • 我正在使用ElasticSearch 7.3来查询一些文档, 我想在查询响应中只返回每个文档的特定字段, 我发现可以使用来实现这一点, 我可以从Kibana使用这个查询来实现这一点- 返回给我正确的数据- 但我无法使用ElasticSearch的节点客户端实现同样的功能- 有人能帮我找到正确的方法来实现我的用例吗? 引用- https://www.elastic.co/guide/en/elast

  • 我正在CentOS Linux 7.3.1611版服务器上使用Jenkins 2.73-1.1版。 服务器上有3个不同版本的JDK: 如下图所示,Jenkins使用的是JDK1.8.0131版本,在我的项目中我指定使用JDK7。 Jenkins设置图像2 当我尝试编译项目()时,生成失败,并且在日志中看到以下错误: [沃达丰]$/usr/java/jdk1.7.0_80/bin/java-cp/v

  • 以前我们有这样的域对象: 从而在ES中生成了如下文档: 请注意: null null [1]-https://spring.io/blog/2020/05/27/what-s-new-in-spring-data-elasticsearch-4-0

  • 我想问一下关于Elasticsearch批量API的问题 这是我使用批量API的代码 我遇到了超时异常,因为我的记录有800K。java.net.SocketTimeoutException:连接超时30,000毫秒http-outgoing-16[活动] 我试图分解传入的jsonList,但有时会出现相同的错误。 我目前使用的是Elasticsearch 7.6.2版本。 异常跟踪 Java.n

  • 问题内容: 如何查询或过滤一个字段不等于另一个字段?即,其中document1.city1.name不等于document1.city2.name。 这个的一些版本? http://www.elasticsearch.org/guide/zh- CN/elasticsearch/reference/current/search-request-script- fields.html 问题答案: 是