首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch仅显示带有节点js的所有索引的名称

Elasticsearch仅显示带有节点js的所有索引的名称
EN

Stack Overflow用户
提问于 2016-12-27 22:11:49
回答 0查看 1.4K关注 0票数 0

我正在使用带有node js的ejs框架。我可以获得json格式的所有索引名称。但我想要的只是索引的名称。我的代码如下所示-

代码语言:javascript
复制
var client = require('../routes/Connection.js');

//display all indexes
module.exports.allIndexes = function (searchData, callback) {
    client.indices.getAliases({
        index: "_all",
        level: "indices"
    }, function (error, response, status) {
        if (error) {
            console.log("search error: " + error)
        }
        else {
            //callback(response);---> this works
            callback(response.hits.hits); // ---> this doesn't
        }
    });
}

如果我在回调中使用response,我会得到以下输出:

代码语言:javascript
复制
{
  "index-1": {
    "aliases": {}
  },
  "index-2": {
    "aliases": {}
  },
  "index-3": {
    "aliases": {}
  },
  "index-4": {
    "aliases": {}
  }
}

当我在回调中使用response.hits.hits时,我得到了错误:“无法读取未定义的属性‘命中’”。我只想以列表的形式显示索引名称。仅供参考,在前端,我将响应传递为"results“:

代码语言:javascript
复制
        <h1>Index</h1>
        <% for(var i=0; i < results.length; i++) { %>
          <%= results[i].indices %>
        <% } %>

当然,这并没有显示任何内容。

edit_1:

我按如下方式导入模块:在我的index.js

代码语言:javascript
复制
router.post('/indexes', function (req, res) {
    elasticModule.allIndexes(req.body, function (data) {
        res.render('elasticGui', { title: 'Elasticsearch GUI', results: data });
    });
});
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41346750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档