如何以返回整行而不是嵌套存储桶的方式查询elasticsearch?

时间:2018-06-05 09:52:25

标签: elasticsearch

我的数据表的请求主体在Kibana上有7列,如下所示:

{
  "aggs": {
    "2": {
      "terms": {
        "field": "efe_board",
        "size": 999,
        "order": {
          "_count": "desc"
        }
      },
      "aggs": {
        "3": {
          "terms": {
            "field": "efe_fid",
            "size": 999,
            "order": {
              "_count": "desc"
            }
          },
          "aggs": {
            "4": {
              "terms": {
                "field": "efe_die",
                "size": 5,
                "order": {
                  "_count": "desc"
                }
              },
              "aggs": {
                "5": {
                  "terms": {
                    "field": "efe_cycle",
                    "size": 5,
                    "order": {
                      "_count": "desc"
                    }
                  },
                  "aggs": {
                    "6": {
                      "terms": {
                        "field": "efe_block",
                        "size": 5,
                        "order": {
                          "_count": "desc"
                        }
                      },
                      "aggs": {
                        "7": {
                          "terms": {
                            "field": "efe_page",
                            "size": 5,
                            "order": {
                              "_count": "desc"
                            }
                          },
                          "aggs": {
                            "8": {
                              "terms": {
                                "field": "efe_page_type",
                                "size": 5,
                                "order": {
                                  "_count": "desc"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  ...
 }

如果我想重新创建一个整个表(可能是一个pandas DataFrame),我将不得不使用递归或深度嵌套的for循环来访问存储桶,提取数据,将它们存储在字典列表中并转换说到DF的名单。

我想知道是否有更好的方法来实现相同的效果而无需访问嵌套存储桶同时解决省略行的问题,例如如果没有数据efe_fid,则不会查询剩余的嵌套字段。

0 个答案:

没有答案