使用elasticsearch.js

时间:2015-10-15 08:56:30

标签: javascript json elasticsearch

我运行了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文件?

2 个答案:

答案 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所述。