javascript - Elasticsearch 滚动限制结果数

标签 javascript elasticsearch

请参阅下面的代码。我想要完成的是限制每个批处理大小的数量(50),但也限制总结果的数量(1000)。然而,使用代码示例,我得到了所有匹配的记录作为结果。我究竟做错了什么?或者根本不支持此功能。

谢谢!

桑德尔

var elasticsearch = require('elasticsearch');
var _ = require('lodash');

var client = new elasticsearch.Client({
    host: 'host',
    log: 'info'
});

var allDocuments = [];
client.search({
    index: "index",
    type: "type",
    scroll: '30s',
    size: 50,
    body: {
        "from": 0,
        "size": 1000,
        "query": {
            "range": {
                "updated": {
                    "gte": "2016-10-24T08:35:10.540Z",
                    "lte": "2016-10-29T20:35:10.541Z"
                }
            }
        }
    }
}, function getMoreUntilDone(error, response) {
    response.hits.hits.forEach(function (hit) {
        allDocuments.push(hit._source);
    });
    if (response.hits.total !== allDocuments.length) {
        client.scroll({
            scrollId: response._scroll_id,
            scroll: '30s'
        }, getMoreUntilDone);
    } else {
        console.log('count', allDocuments.length);
    }
});

最佳答案

使用 size 不会在 1000 次点击后停止查询。它只会以 1000 为一组进行批处理。而是使用 Terminate_after。

body: {
            "from": 0,
            "terminateAfter": 1000,
            "query": {
                "range": {
                    "updated": {
                        "gte": "2016-10-24T08:35:10.540Z",
                        "lte": "2016-10-29T20:35:10.541Z"
                    }
                }
            }
        }

关于javascript - Elasticsearch 滚动限制结果数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40317584/

相关文章:

elasticsearch - 如何使用ElasticSearch中的脚本将多个标签添加到现有列表

hadoop - 从配置单元到elasticsearch:

javascript - JavaScript 中的立即调用函数

javascript - jqGrid 创建表时隐藏行

javascript - 我如何访问同一工厂的不同 javascript 函数中的变量?

javascript - 在 firebase 存储上完成上传后如何获取下载 URL

javascript - knockout 双向绑定(bind)不适用于复选框

elasticsearch - 为什么我的Elastic Enterprise搜索配置不起作用?

elasticsearch - 更新文档,以便它将更新数组字段中的特定项目

java - 配置 Spring MappingElasticsearchConverter 将 _id 视为字符串