ES 6.2过滤列表中的嵌套对象

时间:2018-04-15 00:52:56

标签: elasticsearch

我不确定这是否可行,或者是否有更好的方法来构建我的文档。

我当前的映射结构如下:

from itertools import combinations
from statistics import mean
a = [0,0,3,4,1,2,9]
b = list(filter(lambda x: isinstance(x, int), map(mean, combinations(a, 2))))

(我已经更改了对象的名称并缩小了属性,使其更易于stackoverflow)

我想要做的是获得所有“section.sectionDetail.detail.value”的平均值,其中类型为“typeOne”。

{
"objectName": {
    "person": {
        "properties": {
             "firstName": {
                 "type": "text"
              }
         }
    }
    "properties": {
        "id": {
            "type": "long"
        },
        "sections": {
            "type" : "nested",
            "properties": {
                "id": {
                    "type": "long"
                },
                "title": {
                    "type": "text"
                },
                "sectionDetails": {
                    "type" : "nested",
                    "properties": {
                        "id": {
                            "type": "long"
                        }
                        "detail": {
                            "properties": {
                                "id": {
                                    "type": "long"
                                },
                                "type": {
                                    "type": "keyword"
                                },
                                "value": {
                                    "type": "long"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

但是,文档可以包含许多“部分”和许多“部分详细信息”。 目前,如果我使用bool过滤器,并说出类型“must_not”“typeTwo”,那么我松开任何“typeTwo”的文件(其中也可能包含我想要的一些“typeOne”

我对如何更好地构建这个问题感到满意吗?

编辑: 我已更新结构和查询以匹配最新进度。 当我查询时,我得到一个null值。我相信过滤器不正确

0 个答案:

没有答案