忽略 Jest 客户端大小参数

Jest Client Size Parameter Ignored

我正在使用 Jest 客户端从我的 Java 程序中查询 Elasticsearch。一切正常,除了当我添加 "size" 参数时它被忽略。搜索的构建和执行是这样的:

Search search = new Search.Builder(query)
    .setSearchType(SearchType.QUERY_THEN_FETCH)
    .addIndex(index)
    .addType(type)
    .setParameter(Parameters.SIZE, 1)
    .build();
jestClient.execute(search);

此查询总是 returns 10 个结果,而不是预期的 1 个结果。如果相关,则只有 5 个分片,因此它不会为每个分片返回一个结果。

这个参数被忽略有什么特别的原因吗?当 运行 在命令行上使用相同参数的相同查询与 'curl -XGET' 或仅将其放入浏览器时,查询运行正确并且大小参数 考虑在内。

原来我对大小参数的工作方式有误解。我相信 Jest was 在调整 query 结果时正确处理它,但我真正感兴趣的是 aggregation 结果。

向我的聚合添加 "size" 参数有效,如 Terms Aggregation 文档(复制在下方)中所示。

{
    "aggs" : {
        "products" : {
            "terms" : {
                "field" : "product",
                "size" : 5
            }
        }
    }
}