我正在使用Jest Client从我的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);
此查询始终返回10个结果,而不是预期的1个结果。如果相关,则只有5个分片,因此每个分片不会返回结果。
是否有任何特殊原因会忽略此参数?当在命令行中使用“curl -XGET”运行具有相同参数的相同查询时,或者仅将其放入浏览器中时,查询将正确运行,并且考虑了size参数。
最佳答案
事实证明,我对size参数的工作方式有误解。我相信Jest在调整查询结果的大小时可以正确地处理它,但是我真正感兴趣的是聚合结果。
在Terms Aggregation文档中可以看到,在我的聚合中添加了一个“size”参数可以正常工作(在下面复制)。
{
"aggs" : {
"products" : {
"terms" : {
"field" : "product",
"size" : 5
}
}
}
}
关于elasticsearch - Jest 客户端大小参数被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603077/