每x秒获取最新的elasticsearch条目

时间:2016-01-21 14:58:26

标签: javascript node.js elasticsearch elasticsearch.js

基本上我每隔几秒就会有多个日志条目进入elasticsearch。我正在尝试编写一个实时流式日志查看器,可以在最近的20个日志中每2秒轮询一次弹性搜索。

我遇到的问题是我每次轮询时都会返回相同的20个日志,它们甚至不是最新的20个日志。这就是我现在正在做的事情。

var elasticsearch = require('elasticsearch');

var client = new elasticsearch.Client({
    host: "host"
});

router.get('/poll/', function (req, res) {
    var service = req.body.service;
    var logs = [];
    var index = 'logstash-'+dateFormat(new Date(), "yyyy.mm.dd");
    client.search({
        index: index,
        size: 20,
        _sort: "@timestamp",
        body: {
            query: {
                query_string: {
                    query: "dockerd",
                    fields: ["SYSLOG_IDENTIFIER"]
                }
            }
        }
    }).then(function (resp) {
        resp.hits.hits.forEach(function(hit) {
            logs.push(hit);
        });
        res.end(JSON.stringify(logs));
    }, function(err) {
        console.log(err.message);
    });
});

我在这里尝试做的是根据时间戳按降序对日志进行排序,然后返回20个日志。这应该总是返回最新的条目吗?

非常感谢任何有关此问题的帮助。我是使用elasticsearch api的新手,现在已经把头撞到了墙上一天。

0 个答案:

没有答案