开发者社区 > 大数据与机器学习 > 开源大数据平台 E-MapReduce > 正文

sr on es怎么取到最里层的值?

请教下,sr on es,像这种嵌套的mapping,怎么取到最里层的值。如何建表合适。我搜的样例,都不带多级mapping的 { ""mappings"": { ""_doc"": { ""properties"": { ""created_at"": { ""type"": ""long"" }, ""resource"": { ""properties"": { ""cats"": { ""properties"": { ""name"": { ""type"": ""keyword"" }, ""sub_cats"": { ""properties"": { ""name"": { ""type"": ""keyword"" }, ""sub_cats"": { ""properties"": { ""name"": { ""type"": ""keyword"" } } } } } } }, ""ids"": { ""type"": ""keyword"" }, ""tags"": { ""type"": ""keyword"" } } } ""updated_at"": { ""type"": ""long"" } } } } }

展开
收起
wenti 2023-01-08 17:26:33 313 0
1 条回答
写回答
取消 提交回答
  • 要从 Elasticsearch 中获取最里层的值,可以使用 嵌套查询。嵌套查询允许您查询嵌套文档或对象的字段。

    语法:

    {
    "nested": {
    "path": "nested_field_name",
    "query": {
    // 查询条件
    }
    }
    }
    其中:

    path 指定要查询的嵌套字段的名称。
    query 指定要应用于嵌套文档或对象的查询条件。
    示例:

    假设您有一个名为 products 的索引,其中包含以下文档:

    {
    "name": "Product 1",
    "categories": [
    "Category 1",
    "Category 2"
    ]
    }
    要获取所有 categories 字段的最里层值,可以使用以下查询:

    {
    "nested": {
    "path": "categories",
    "query": {
    "match_all": {}
    }
    }
    }
    此查询将返回以下结果:

    [
    "Category 1",
    "Category 2"
    ]
    注意:

    嵌套查询只能用于查询 对象 或 数组 类型的字段。
    如果嵌套文档或对象包含多个字段,您可以使用 inner_hits 参数返回与匹配查询条件的嵌套文档或对象。

    2024-02-26 16:54:24
    赞同 展开评论 打赏

阿里云EMR是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎,计算资源可以根据业务的需要调整。EMR可以部署在阿里云公有云的ECS和ACK平台。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载