栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

对嵌套数组进行排序,然后返回前10个弹性值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对嵌套数组进行排序,然后返回前10个弹性值

由于您在主/父级查询中提供了排序,因此将仅对父/根文档进行排序。正如您可能已经观察到的结果所示,文档以m_Companes.value的最小值排序。

要对每个文档的嵌套文档进行排序,您必须深入嵌套文档并应用排序,因为m_Companies是父文档中的子文档。您必须使用嵌套的inner_hits,然后对inner_hits进行排序。

这个github问题有一个很好的例子,说明了我正在尝试解释的内容,因为这是如何基于嵌套文档中的值仅对父/根文档进行排序的。

由于您希望所有文档都嵌套,因此您可以让嵌套查询使用match_all获取所有嵌套文档并根据值字段进行排序。

您可以使用以下查询

{    "_source": ["m_iYear", "m_Companies"],    "query": {        "bool": { "must": [{         "terms": {  "m_iTopicID": [11, 12, 13]         }     },     {         "nested": {  "path": "m_Companies",  "query": {      "match_all": {}  },  "inner_hits": {      "sort": [{          "m_Companies.value": "asc"      }]  }         }     } ]        }    },    "sort": [{        "m_Companies.value": { "order": "asc", "nested_path": "m_Companies"        }    }]}

希望这会有所帮助,谢谢



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/388263.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号