如何在javascript ElasticSearch API之外返回或传递输出

时间:2015-09-04 20:42:10

标签: javascript elasticsearch

我不熟悉javascript,所以我需要帮助。 我想从ElasticSearch中提取文档,然后在google geochart上显示结果。 我的问题是一个函数drawMarkersMap()如何获得'行'在"函数(正文)"

中计算
client.search({
    "index": "indexname",
    "type": "typename",
    "size": 100,
    body: { 
        "query": {
           "match_all": {}
        }
    }
}).then(function(body) {
    var rows = [];  
    var results = body.hits.hits;
    for (var i = results.length - 1; i >= 0; i--) {
        ... // parsing data and 
        cols=['a', 'b', 'c']; // example row
        rows[i] = cols;          
    }        
}, function (error) {
    console.error(error);
});

function drawMarkersMap() {
    var data = google.visualization.arrayToDataTable(rows);
    ...
    google.visualization.GeoChart(document.getElementById('geochart_div'));
    chart.draw(data, options);
};

1 个答案:

答案 0 :(得分:1)

嗯,你几乎就在那里,当你完成解析你的结果时,你只需要调用drawMarkersMap()并将参数中的行传递给该函数,如下所示:

...
}).then(function(body) {
    var rows = [];  
    var results = body.hits.hits;
    for (var i = results.length - 1; i >= 0; i--) {
        ... // parsing data and 
        cols=['a', 'b', 'c']; // example row
        rows[i] = cols;     

        drawMarkersMap(rows);         <---- call draw and pass your rows here     
    }        
}, function (error) {
...
});

function drawMarkersMap(rows) {       <---- add rows parameter here
...
}