How to make calls to elasticsearch apis through NodeJS?

前端 未结 2 1753
Happy的楠姐
Happy的楠姐 2021-01-13 21:40

I have been tasked with making a POST api call to elastic search api,

https://search-test-search-fqa4l6ubylznt7is4d5yxlmbxy.us-west-2.es.amazonaws.com/klove-ddb/rec

2条回答
  •  旧时难觅i
    2021-01-13 22:24

    The Elasticsearch npm package is going to be deprecated soon, use @elastic/elasticsearch and @acuris/aws-es-connection so you don't have to provide IAM Credentails to the function.

    Here the code, I use:

    'use strict';
    
    const { Client } = require('@elastic/elasticsearch');
    const { createAWSConnection, awsGetCredentials } = require('@acuris/aws-es- 
    connection');
    
    module.exports.get_es_interests = async event => {
    const awsCredentials = await awsGetCredentials();
    const AWSConnection = createAWSConnection(awsCredentials);
    const client = new Client({
    ...AWSConnection,
    node: 'your-endpoint',
    });
    
    let bodyObj = {};
    try {
        bodyObj = JSON.parse(event.body);
    } catch (jsonError) {
        console.log('There was an error parsing the JSON Object', jsonError);
        return {
            statusCode: 400
        };
    }
    
    let keyword = bodyObj.keyword;
    
    const { body } = await client.search({
    index: 'index-name',
    body: {
      query: {
        match: {
          name: {
            query: keyword,
            analyzer: "standard"
          }
        }
      }
    }
    });
    
    var result = body.hits.hits;
    
    return result;
    };
    

提交回复
热议问题