集群

时间:2018-02-23 12:25:43

标签: java elasticsearch

我在单个elasticsearch查询中遇到一个奇怪的问题,导致集群不稳定。 我有一个查询,在嵌套字段上使用过滤器过滤器聚合。当我在几乎没有值的嵌套字段上进行术语查询时,查询工作正常(对集群没有影响)但是,如果我在术语中添加许多项来查询嵌套字段内部,则集群会变得不稳定。 我有一个包含4个数据节点和一个主节点的集群,每个节点上有32 GB内存。

    {
  "size" : 0,
  "aggregations" : {
    "amount" : {
      "terms" : {
        "field" : "user_id",
        "size" : 0
      },
      "aggregations" : {
        "totalAmount" : {
          "nested" : {
            "path" : "amount"
          },
          "aggregations" : {
            "testfilters" : {
              "filter" : {
                "bool" : {
                  "must" : {
                    "bool" : {
                      "must" : [  {
                        "terms" : {
                          **"amount.group" : [ "A1", "A2", "A4",..... "A100" ]**
                        }
                      } ]
                    }
                  }
                }
              },
              "aggregations" : {
                "paidAmountTotal" : {
                  "sum" : {
                    "field" : "amount.paid"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

上述查询导致群集变得不稳定。我所做的更改是在粗体文本上面,这是一个嵌套字段(amount.group),我对其进行了术语聚合。

我已经测试过添加match_all而不是amount.group字段的值,尽管我对集群没有任何问题。

嵌套字段中的术语聚合如何工作? 这可能是什么原因?

0 个答案:

没有答案