我正在使用Jest Client从我的Java程序中查询Elasticsearch。一切都正常,除非我添加"尺寸"参数被忽略。构建和执行搜索就像这样:
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'在命令行上使用相同参数运行相同查询时或者,只需将其放入浏览器中,查询就会正确运行,并且大小参数 被记入帐户。
答案 0 :(得分:1)
事实证明我对size参数的工作方式存在误解。在确定查询结果的大小时,我相信Jest 正确处理它,但我真正感兴趣的是聚合结果。
在我的聚合中添加“size”参数,可以在Terms Aggregation文档中看到(在下面复制)。
{
"aggs" : {
"products" : {
"terms" : {
"field" : "product",
"size" : 5
}
}
}
}