Я пытаюсь быть клиентом, используя API эластичного поиска.Моя цель - стать клиентом Elasticsearch и попытаться преобразовать данные в графику на моей собственной веб-странице.И тогда я получил такую ошибку.Как решить эту проблему?
Или вы можете дать мне другой источник или пример по этому поводу?
index.xhtml
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Elastic Aggregations</title>
<script src="scripts/require.js"></script>
<script>require(["scripts/main"], function () {});</script>
<style>
body {
font: 14px sans-serif;
}
.arc path {
stroke: #fff;
stroke-width: 3px;
}
</style>
</head>
<body>
<div id="donut-chart"></div>
</body>
</html>
main.js
define(['scripts/d3.v3', 'scripts/elasticsearch'], function (d3, elasticsearch) {
"use strict";
var client = new elasticsearch.Client({
host: 'http://localhost:9200',
log: 'trace'
});
client.search({
index: 'nfl',
size: 5,
body: {
// Begin query.
query: {
// Boolean query for matching and excluding items.
bool: {
must: {match: {"description": "TOUCHDOWN"}},
must_not: {match: {"qtr": 5}}
}
},
// Aggregate on the results
aggs: {
touchdowns: {
terms: {
field: "qtr",
// order by quarter, ascending
order: {"_term": "asc"}
}
}
}
// End query.
}
}).then(function (resp) {
console.log(resp);
// D3 code goes here.
var touchdowns = resp.aggregations.touchdowns.buckets;
// d3 donut chart
var width = 600,
height = 300,
radius = Math.min(width, height) / 2;
var color = ['#ff7f0e', '#d62728', '#2ca02c', '#1f77b4'];
var arc = d3.svg.arc()
.outerRadius(radius - 60)
.innerRadius(120);
var pie = d3.layout.pie()
.sort(null)
.value(function (d) {
return d.doc_count;
});
var svg = d3.select("#donut-chart").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width / 1.4 + "," + height / 2 + ")");
var g = svg.selectAll(".arc")
.data(pie(touchdowns))
.enter()
.append("g")
.attr("class", "arc");
g.append("path")
.attr("d", arc)
.style("fill", function (d, i) {
return color[i];
});
g.append("text")
.attr("transform", function (d) {
return "translate(" + arc.centroid(d) + ")";
})
.attr("dy", ".35em")
.style("text-anchor", "middle")
.style("fill", "white")
.text(function (d) {
return d.data.key;
});
});
});
и каталог
|
|-scripts
| |-main.js
| |-elasticsearch.js
| |-require.js
| |-d3.v3.js
|
|-index.xhtml
и сообщение об ошибке;
Uncaught TypeError: Cannot read property 'Client' of undefined
at VM899 main.js:3
at Object.execCb (require.js:1650)
at Module.check (require.js:866)
at Module.<anonymous> (require.js:1113)
at require.js:132
at require.js:1156
at each (require.js:57)
at Module.emit (require.js:1155)
at Module.check (require.js:917)
at Module.enable (require.js:1143)