首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套对象中多个字段的聚合不适用于弹性搜索1.7x?

问嵌套对象中多个字段的聚合不适用于弹性搜索1.7x?
EN

Stack Overflow用户
提问于 2015-08-20 22:03:01
回答 1查看 785关注 0票数 1

亚马逊索引中的映射如下所示。图书有嵌套作者,具有多字段“别名”。“别名”和"alias.raw“应该是作者中的有效字段。

代码语言:javascript
复制
{
    mappings: {
        book: {
            properties: {
                title: {
                    type: "string",
                    fields: {
                        raw: {type: "string", index: "not_analyzed"}
                    }
                },
                authors: {
                    type: "nested",
                    properties: {
                        alias: {
                            type: "string",
                            fields: {
                                raw : {
                                    type: "string",
                                    index: "not_analyzed"
                                }
                            }
                        },
                        alias_raw: {
                            type: "string",
                            index: "not_analyzed"
                        }

                    }
                }
            }
        }
    }
}

样本数据:

{索引:{_id:"1",_type:"book"}} {标题:“Dummies Awesome",第100页,作者:{firstName:”阿波罗“,lastName:"Cabrera",别名:”for . Awesome“,alias_raw:"Mister Awesome"},{firstName:"Mark",lastName:"Twain",别名:"Julius恺撒”,alias_raw:"Julius恺撒“}

{索引:{_id:"2",_type:"book"}} {标题:“了解妇女”,第100000页,作者:{firstName:"Megyn",lastName:"Kelly",别名:“Wonder Women",alias_raw:"Wonder Women”},{firstName:"Donald",lastName:"Trump",别名:“Lone Ranger",alias_raw:"Lone Ranger"}}

{索引:{_id:"3",_type:"book"}} {标题:"Snap“,页面:"30",作者:{firstName:”希拉里“,lastName:”克林顿“,别名:”密码零“,alias_raw:”密码零“},{firstName:"Harry",lastName:"Houdini",别名:"Abra”,alias_raw:"Abra“}}

我的聚合查询看起来如下.

代码语言:javascript
复制
{
    query: {
        match_all: {}
    },
    aggs: {
        authors: {
            nested: {
                path: "authors"
            },
            aggs: {
                aliases: {
                    terms: {
                        field: "alias.raw"
                    }
                }   
            }
        }
    }
}

当我执行聚合查询时,完全没有聚合。如果我使用"alias_raw“(这是我添加的另一个单独的字段),我将得到预期的完整别名.

代码语言:javascript
复制
"aggregations" : {
    "authors" : {
      "doc_count" : 6,
      "aliases" : {
        "doc_count_error_upper_bound" : 0,
        "sum_other_doc_count" : 0,
        "buckets" : [ {
          "key" : "Abra Cadabra",
          "doc_count" : 1
        }, {
          "key" : "Code Zero",
          "doc_count" : 1
        }, {
          "key" : "Julius Caesar",
          "doc_count" : 1
        }, {
          "key" : "Lone Ranger",
          "doc_count" : 1
        }, {
          "key" : "Mister Awesome",
          "doc_count" : 1
        }, {
          "key" : "Wonder Woman",
          "doc_count" : 1
        } ]
      }
    }
  }

还有另一种方法可以获得"alias.raw“来聚合多个字段吗?,如果只使用”别名“,就会得到解析的、标记化的、分析的、小写的字段。我要那个未经分析的原始化名。我真的不认为我需要也不想要多余的"alias_raw“字段。

(预先谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2015-08-20 22:33:57

弄明白了。你必须使用完整的路径作为字段名..。

字段:"authors.alias.raw“

即

代码语言:javascript
复制
{
    query: {
        match_all: {}
    },
    aggs: {
        authors: {
            nested: {
                path: "authors"
            },
            aggs: {
                aliases: {
                    terms: {
                        field: "authors.alias.raw"
                    }
                }   
            }
        }
    }
}

欠债权利:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32129152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档