Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不影响性能的情况下将Integer.MAX_值传递给elasticsearch可以吗?_Java_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

Java 在不影响性能的情况下将Integer.MAX_值传递给elasticsearch可以吗?

Java 在不影响性能的情况下将Integer.MAX_值传递给elasticsearch可以吗?,java,elasticsearch,Java,elasticsearch,我正在尝试使用JavaAPI查询elasticsearch以获得所有不同的字段 TermsAggregationBuilder aggregation = AggregationBuilders.terms("count").field(field). size(Integer.MAX_VALUE). order(BucketOrder.key(true)); 我事先不知道场的基数。在不影响弹性搜索性能的情况下传递

我正在尝试使用JavaAPI查询elasticsearch以获得所有不同的字段

TermsAggregationBuilder aggregation =
        AggregationBuilders.terms("count").field(field).
                size(Integer.MAX_VALUE).
                order(BucketOrder.key(true));
我事先不知道场的基数。在不影响弹性搜索性能的情况下传递Integer.MAX_值可以吗。或者有其他选择吗?

引用弹性:

如果要检索嵌套术语聚合中的所有术语或术语的所有组合,应使用复合聚合,该聚合允许对所有可能的术语进行分页,而不是设置大于术语聚合中字段基数的大小。术语聚合旨在返回顶部术语,不允许分页

以及:

请求的大小越大,结果越准确,但计算最终结果的成本也越高(这是因为在碎片级别上管理的优先级队列越大,以及节点和客户端之间的数据传输越大)


所以答案是:使用MAX_值可能不是一个好主意,不仅是因为潜在的性能影响,更重要的是因为:这样做在概念上是错误的

我想这可能取决于许多微妙的细节,其中许多隐藏在您的环境和配置中。你为什么不简单地尝试一下发生了什么,然后在改变之前/之后进行测量,看看比较数字呢。10万份文件。因此无法从该数据集推断性能。生产文件的数量可能高达1B。两个电话怎么样?在下一次调用中使用值获取基数。这比使用scroll的复合聚合更好吗?@ShashwatKumar我希望能回答这个问题,但我不是弹性专家。如果没有更好的答案出现在这里,我建议你尝试看看他们是否有一些用户论坛,你可以问。。。