【问题标题】:Using elasticsearch.js使用弹性搜索.js
【发布时间】:2016-01-13 15:31:44
【问题描述】:

我已经运行了 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>

(顺便说一下,下载的 .js 不止 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');

返回“未捕获的引用错误:未定义要求”,这表明我至少缺少一个具有该功能的其他 .js 文件?

【问题讨论】:

    标签: javascript json elasticsearch


    【解决方案1】:

    由于您在浏览器中,您需要使用browser build(目前 Angular 或 jQuery 可用)。

    假设您使用 jQuery 方式,您的 &lt;script&gt; 应该如下所示:

    <script src="elasticsearch-js/elasticsearch.jquery.min.js"></script>
    

    然后你可以像这样创建你的客户端:

    var client = new $.es.Client({
      hosts: 'localhost:9200',
      log: 'trace'
    });
    

    【讨论】:

    • @hwilson1 试试这个运气好吗?
    【解决方案2】:

    require 语句是仅限 NodeJS 的函数。如 Val 所述,您需要在 HTMl 文件中下载并引用 ES 的浏览器构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 2018-10-26
      • 2021-07-13
      • 2012-05-07
      • 2016-12-09
      • 2019-06-14
      • 1970-01-01
      相关资源
      最近更新 更多