我有一系列JSON文档,例如{"type":"A", "value": 2}, {"type":"B"," value":3}, and {"type":"C","value":7}
,我将其提供给弹性搜索。
假设我想进行一次查询以使用"type": "A"
弹性搜索如何计算计数与使用Mongo的方式之间有什么区别?
弹性搜索:
答案 0 :(得分:1)
它最接近您的#2,但结果会被缓存,因此如果结果在后续查询中非常有用,那么结果很有用。 Elasticsearch没有办法事先知道你要运行什么查询,所以#1是不可能的,#3会浪费。
但是,对于您的示例用例,您可能不需要两个查询,一个就足够了。例如,参见将返回count,min,max,average和sum的stats aggregation。将其与terms aggregation(可能还有missing aggregation)相结合,对type
字段上的文档进行分组,您就可以获得计数和平均值(以及最小值,最大值,总和)单个查询分别用于所有类型。