繁体   English   中英

如何将Elasticsearch数据(JSON)导入Google图表?

[英]How to import Elasticsearch data(JSON) into Google Charts?

我尝试使用Elasticsearch数据创建一个包含Google Charts的表格。 我遵循了这个解决方案: 使用Elasticsearch的搜索数据填充Google Chart

但我看不到任何数据或图表显示。 我认为这是因为我没有正确传输数据。 谁能告诉我以下代码的问题?

     <html>
      <head>
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> 
        </script>
        <script type="text/javascript">
      google.load('visualization', {'packages':['table']});
      google.setOnLoadCallback(drawTable);

      function drawTable() {
      var json;
      $.ajax({
           url: 'http://localhost:9200/people/man/_search',
        type: 'POST',
        data :
            JSON.stringify(
                {
                    "query" : { "match_all" : {} }
                }),
        dataType : 'json',
        async: false,
        success: function(data){
            json = data;
        }
    })



  var jdata = {};
  jdata.cols = [
{
    "id": "",
    "label": "name",
    "type": "string"
},
{
    "id": "",
    "label": "country",
    "type":"string"
}
 ];

   jdata.rows = [
{
    "c": [
        {
            "v": json.hits.hits[0]._source.name
        },
        {
            "v": json.hits.hits[0]._source.country
        }
    ]
}
];

   var data = new google.visualization.DataTable(jdata);

   var table = new google.visualization.Table(document.getElementById('table_div'));
 table.draw(data, {showRowNumber: true, width: '100%', height: '100%'});
}
 </script>
</head>

<body>
     <div id="table_div"> </div>
</body>
</html>

我发现在这段代码中没有显示任何问题。 没有大的错误,但要注意好的细节。

  1. 添加标题“Content-Type”,“application / json”。 我使用了“xmlhttp.setRequestHeader(”Content-Type“,”application / json“);”
  2. 'json'在函数中定义。 如果在函数外部使用json,它会返回空白文件。(小错误,但如果你没注意到这一点很烦人)
  3. 不要忘记使用“var json = JSON.parse(json);”将字符串传输到json。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM