我运行了elasticsearch.bat并在浏览器中使用localhost:9200查询。 JSON对象返回如下,所以到目前为止一切正常。
{
"status" : 200,
"name" : "hwils_01_dev",
"cluster_name" : "elasticsearch_hwils_dev",
"version" : {
"number" : "1.7.2",
"build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec",
"build_timestamp" : "2015-09-14T09:49:53Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}
我已经通过标签下载并链接到我的index.html elasticsearch.js
<script src="elasticsearch-js/elasticsearch.js"></script>
(顺便提一下,下载中有超过1个。我需要将它们全部链接起来吗?)
然后我运行添加到另一个标签代码
var client = new elasticsearch.Client({
host: 'localhost:9200',
log: 'trace'
});
并将其输出到控制台 - 再次返回JSON对象,大概到目前为止一切正常。
如果我再运行
client.ping({
requestTimeout: 30000,
// undocumented params are appended to the query string
hello: 'elasticsearch'
}, function (error) {
if (error) {
console.error('elasticsearch cluster is down!');
} else {
console.log('All is well');
}
});
我收到了返回的错误消息。我不知道为什么。
顺便提及
var elasticsearch = require('elasticsearch');
返回“未捕获的引用错误:未定义require”,这表明我至少缺少一个具有该函数的其他.js文件?
答案 0 :(得分:3)
由于您使用的是浏览器,因此需要使用browser build(目前可以使用Angular或jQuery)。
所以,让我们说你采用jQuery的方式,你的<script>
应该是这样的:
<script src="elasticsearch-js/elasticsearch.jquery.min.js"></script>
然后您可以像这样创建您的客户端:
var client = new $.es.Client({
hosts: 'localhost:9200',
log: 'trace'
});
答案 1 :(得分:0)
require
语句是仅限NodeJS的函数。您需要在您的HTMl文件中下载并引用ES的浏览器版本,如Val所述。