имеют следующий набор для функции, возвращающей запрос и агрегацию Elasticsearch:
const searchDoc = async function(indexName, mappingType, payload){
return await es.search({
index: indexName,
type: mappingType,
body: payload
});
}
module.exports = searchDoc;
async function performESConvo(){
const body = {
"query": {
"bool": {
"must": [
{ "match": { "InternalEntityId": sampleInternalEntityIDval }},
{ "match": { "Direction": sampleDirection }}
]
}
},
"sort": [
{
"DateCreated": {
"order": "desc"
}
}
],
"aggs": {
"extadd": {
"terms": {
"field": sampleAggregationField
},
"aggs": {
"top_date": {
"top_hits": {
"sort": [
{
"DateCreated": {
"order": "desc"
}
}
],
"size": 1
}
}
}
}
}
}
try {
const resp = await searchDoc('chub-index', '_doc', body);
var objreturn = JSON.stringify(resp.aggregations.extadd.buckets);
console.log(JSON.parse(objreturn))
} catch (e) {
console.log(e);
}
}
exports.performESConvo = performESConvo;
performESConvo();
Результаты:
[ { key: 'bobbi@bob.com',
doc_count: 1,
top_date: { hits: [Object] } },
{ key: 'bobby@goodtimes.com',
doc_count: 1,
top_date: { hits: [Object] } },
{ key: 'rita@bill.com',
doc_count: 1,
top_date: { hits: [Object] } } ]
Как мы возвращаемся с каждым [Object] ' с _source
(за ведро)? Итерация? Карта