请教下,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"" } } } } }
要从 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 参数返回与匹配查询条件的嵌套文档或对象。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云EMR是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎,计算资源可以根据业务的需要调整。EMR可以部署在阿里云公有云的ECS和ACK平台。