in src/utils/elasticsearch.js [139:179]
function queryMetadataForKeyword(keyword) {
return Auth.currentCredentials().then(creds => {
const lambda = new AWS.Lambda({
region: defaultRegion,
credentials: Auth.essentialCredentials(creds),
});
const params = {
FunctionName: config.searchFunctionName,
InvocationType: 'RequestResponse',
};
const esParams = {
index: ELASTIC_SEARCH_INDEX_NAMES.METADATA,
type: '_doc',
body: {
size: config.maxRecords,
sort: { startTime: { order: 'desc' } },
query: {
multi_match: {
type: 'best_fields',
query: keyword,
},
},
},
output: [],
};
params['Payload'] = Buffer.from(JSON.stringify(esParams));
return lambda
.invoke(params)
.promise()
.then((data) => {
const body = JSON.parse(data.Payload).body;
if (body === undefined || body === []) {
return [];
}
return JSON.parse(data.Payload).body.Records;
});
});
}