2014-04-15 53 views
2

您可以使用具有聚合/构面的Multi Get API吗?Elasticsearch Multi获取聚合

例如,如果我存储称为形状的文档,并且我有500个shape_ids,则每个形状都有一个side_count,我希望找出该shape_ids列表的平均边数。

回答

2

获取请求与搜索请求相比非常不同。一个get并不意味着任何查询都是给定的索引,类型和id(或路由),我们知道它在哪里(哪个分片),因此文档从有趣的分片中检索并返回。 Multi get只是一种变体,它以多种文档的方式进行处理,并以更优化的方式进行分组,从而使每个分片获得请求,从而最大限度地减少网络往返次数。还要注意get是实时的,因为文档可以从lucene索引或者elasticsearch事务日志中检索,如果还没有可用于搜索的话。

聚集需要一个搜索请求,并不能对通过GET请求返回的文档上运行。您可能能够通过使用搜索API和ids filter而不是多重获得来获得相同的结果。

+0

谢谢,ID过滤器是正确的。 – lukewm