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

如何使用Elasticsearch-js(或其他方式)基于查询更新文档?

于高雅
2023-03-14
问题内容

我要执行按查询更新,特别是更新其中字段名称包含Gary的特定文档。我正在使用最新版本的elasticsearch(2.3)我正在使用官方ES客户端的nodejs。提供一种替代方法来执行此操作(查找文档,更新文档中的特定字段)可以作为正确答案。


问题答案:

该代码尚未在JavaScript客户端中发布。这将在Javascript客户端库的2.3
API版本中提供。目前,JS客户端仅支持apiVersion:2.2

您可以使用任何HTTP客户端(邮递员,curl,/ head /,Sense等)来访问REST端点并执行所需的操作。

如果确实需要通过Node.js进行此操作,则可以使用如下http模块:

var http = require('http');

var options = {
  host: 'localhost',
  port: 9200,
  path: '/your_index/your_type/_update_by_query',
  method: 'POST'
};

var req = http.request(options, function(resp){
  resp.on('data', function(chunk){
    // check update response
  });
}).on("error", function(e){
  console.log("Got error: " + e.message);
});

var query = {
  "script": {
    "inline": "ctx._source.field = 'value2'"
  },
  "query": {
    "term": {
      "field": "value1"
    }
  }
};

// write data to request body
req.write(JSON.stringify(query));
req.write('\n');
req.end();


 类似资料:
  • 我在Elasticsearch中索引了一个文档,如下所示: 我尝试通过以下命令更新计数字段: 但是,我收到了以下错误: 我到底做了什么,却不见了?我在http://www.elasticsearch.org/guide/reference/api/update.html跟踪文件,但它不起作用。 此外,我还包括父字段: 但还是没有成功。有人能帮我解决这个错误吗?

  • 我知道我可以通过http://localhost:9200/[index_name]/[index_type]/[_id]更新特定的文档,但是我的文档中的_id有#个符号,Sense找不到它们。 了解查询DSL将能够执行一个搜索,我能够指出_id不在URL中。资源:https://www.elastic.co/guide/en/elasticsearch/reference/current/que

  • 我想更新索引中的所有文档。我发现更新查询是我们应该使用的方法。但是,当我使用ctx._now作为更新文档字段的值时,我遇到了问题,导致字段值变为NULL。 这是示例: 当我使用随机数值时,它是工作。假设我把timenow=5。然后,All documents字段timenow变为5。但是,使用这种ctx方法是行不通的。 我该怎么做呢? 附加信息 示例:POST INDEX/TYPE/24/_UPD

  • 问题内容: 有没有人有使用更新的示例?它已在此处进行了文档记录,但是文档尚不清楚,并且不包含有效的示例。我尝试了以下方法: 我得到 我想使用部分文档进行更新,但是update方法不使用任何名为“ doc”或“ document”的参数。 问题答案: 您快要准备好了,只需要将您的身体放在“ doc”字段中即可。使用elasticsearch-py进行部分更新的正确方法如下:

  • 我有4个输入字段如下。名称,计数,金额,价格。和两个文本字段,佣金和总额。 如果用户输入价格和计数值,则应计算金额(价格*计数)。如果用户输入价格和金额值,则应计算计数(金额/价格)。在这两种情况下,佣金=0.02*金额和总额=金额佣金都应更新。 所以,我尝试了下面的代码片段作为根据价格更新金额和佣金的开始。但是它没有更新。 //应用程序。js //createCoins.jsx 你能推荐一下吗。

  • 问题内容: 我目前正在使用Elasticsearch V2.3.1。我想在Java中使用以下Elasticsearch查询。 上面的查询搜索名为“ kimchy”的“用户”,并使用给定值更新“列表”字段。该查询同时更新多个文档。我在https://www.elastic.co/guide/en/elasticsearch/client/java- api/2.3/java-docs- update