在子项聚合中将min_doc_count设置为0时,Elasticsearch聚合查询会忽略父过滤器

时间:2019-03-07 11:12:46

标签: ruby-on-rails elasticsearch elasticsearch-rails

如果我在Elasticsearch中运行此查询,它将返回聚集在字段name上的存储桶集。不返回type字段为 1 的任何文档。

{:size=>0,
 :aggs=>
  {:agg=>
    {:filter=>{:term=>{"type"=>1}},
     :aggs=>{:agg=>{:terms=>{:field=>"name", :min_doc_count=>1}}}}}}

现在,如果我运行此完全相同的查询,请将 only min_doc_count更改为 0 。然后,它忽略父过滤器聚合,并返回所有文档,无论类型如何。

{:size=>0,
 :aggs=>
  {:agg=>
    {:filter=>{:term=>{"type"=>1}},
     :aggs=>{:agg=>{:terms=>{:field=>"name", :min_doc_count=>0}}}}}}

我不了解这种行为。我的查询格式有误吗?我该如何解决?

我正在使用Elasticsearch 6.x,并通过Elasticsearch Rails gem使用它。

0 个答案:

没有答案