Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用nodejs Elasticsearch包对aws Elasticsearch上的数据进行索引_Node.js_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Node.js,elasticsearch" /> elasticsearch,Node.js,elasticsearch" />

Node.js 如何使用nodejs Elasticsearch包对aws Elasticsearch上的数据进行索引

Node.js 如何使用nodejs Elasticsearch包对aws Elasticsearch上的数据进行索引,node.js,elasticsearch,Node.js,elasticsearch,我曾与Elasticsearch合作,在was ES服务上创建了一个域,并尝试在AWS上索引mongoDB数据。但由于我的域受密码保护,我无法在那里索引数据。我正在使用的节点脚本能够在我的本地主机(没有任何密码)上索引mongoDB数据,所以我确信我的脚本没有问题。 这是我用来连接elasticsearch的连接函数 const elasticClient = new elasticsearch.Client({ host: config.elasticsearch.url + '' +

我曾与Elasticsearch合作,在was ES服务上创建了一个域,并尝试在AWS上索引mongoDB数据。但由于我的域受密码保护,我无法在那里索引数据。我正在使用的节点脚本能够在我的本地主机(没有任何密码)上索引mongoDB数据,所以我确信我的脚本没有问题。
这是我用来连接elasticsearch的连接函数

const elasticClient = new elasticsearch.Client({
  host: config.elasticsearch.url + '' + config.elasticsearch.port,
  requestTimeout: 6 * 350 * 25000,
  requestTimeout: Infinity,
  keepAlive: false,
  // log: 'debug',
});
我的配置

  "elasticsearch": {
    "url": "HTTP://localhost",
    "port": "9200",
    "elasticsearchIndices": {
      "collection": {
        "index": "business",
        "type": "location",
        "collectionName": "collection"
      }
    }
  },
嗯,我只需要把用户名密码放在这里的某个地方,但我不知道放在哪里。在官方文档中,它表示将用户名密码放在elasticsearch连接字符串上,如

const elasticClient = new elasticsearch.Client({
  host: config.elasticsearch.url + '' + config.elasticsearch.port,
  auth: 'username:password',
  requestTimeout: 6 * 350 * 25000,
  requestTimeout: Infinity,
  keepAlive: false,
  // log: 'debug',
});
但这也不起作用。如果有人有解决办法,请帮我解决。
关于

您需要使用AWS sdk node.js包来签署您的请求,如下所述:@Val感谢您的回复。但是有没有其他方法可以让我索引我的MongoDB集合呢。这里AWS-SDK正在逐个导入JSON文件。我需要在索引中放入大量数据。您可以改用
\u bulk
端点。你可以参考@joe的答案,这正好说明了这一点works@Val再次您好,现在显示此错误
error:error[ERR_TLS_CERT_ALTNAME_INVALID]:主机名/IP与证书的ALTNAME不匹配:Host:search-johukum-npp7rd7lsyfvol7gw2wxrb4omi.ap-souther-1.es.amazonaws.com/。不在证书的别名中:DNS:*.ap-southest-1.es.amazonaws.com
您的URL必须是
https://
,而不是
http://