如何使用mongoosastic连接到AWS Elasticsearch

时间:2017-04-11 07:57:37

标签: node.js mongodb amazon-web-services elasticsearch mongoosastic

我正在尝试在我的mongo db数据库上创建搜索。我认为一个很好的选择是使用elasticsearch。所以我在aws弹性搜索上启动了一个集群。因为我有这个弹性搜索用于开发目的我已经设置了访问策略以对域进行开放访问。

this.es_connection = new elasticsearch.Client("elastic search end point as given on aws es domain page");

this.es_connection.ping(
 {
   requestTimeout: 30000,
   hello: 'elasticsearch'
 }, 
 function(error) {
  if (error) {
    console.error('elasticsearch cluster is down!' + JSON.stringify(error));
  } else {
    logger.info('All is well in elasticsearch');
  }
 }
);  

检查我试图在npm上ping usgin elascticsearch包。我没有生活联系。节点服务器正在本地主机上运行。当我从自己的浏览器访问终点URL时,我收到了成功消息。

如何使用具有mongoosastic的aws es服务,我一直没有生成连接错误。如果AWS / ES是rest api,我怎样才能将它与mongoosastic一起使用。

1 个答案:

答案 0 :(得分:1)

确保在连接期间指定AWS凭据。我建议您使用此库https://www.npmjs.com/package/http-aws-es。 这对我有用:

var client = require('elasticsearch').Client({
  hosts: 'Your host',
  connectionClass: require('http-aws-es'),
  amazonES: {
    region: 'region',
    accessKey: 'key',
    secretKey: 'secretKey'
  }
});

然后还要确保进行正确的查询,否则会导致400错误。