gpt4 book ai didi

search - 按嵌套对象的数量进行 Elasticsearch 顺序

转载 作者:行者123 更新时间:2023-12-02 10:30:15 25 4
gpt4 key购买 nike

Elasticsearch 初学者。我觉得这应该很简单,但我被困在这里。我有一个帖子映射,如下所示:

[ post1: {
title: 'asdfasd',
comments: [commment1, comment2, comment3]
},
post2: {
title: 'asdf',
comments: [comment1, comment2]
}
.
.
.]

我正在尝试按标题搜索它们,然后按评论数量对它们进行排序。我可以很好地按标题进行搜索,但我对如何按评论数对结果进行排序有点困惑。这样做的最佳方法是什么?

最佳答案

你有两个选择 -

  1. 使用script获取数组的长度。所以你会做类似的事情:

    {  
    "query" : {
    ....
    },
    "sort" : {
    "_script" : {
    "script" : "doc['comments'].values.length",
    "type" : "number",
    "order" : "desc"
    }
    }
    }
  2. 为评论数量保留一个附加字段,每次添加评论时,评论计数器的值也会增加,并按其排序。

如果您有大量数据,则最好选择选项 2。使用脚本有其开销,如果您必须在大量文档上计算脚本,则可能会增加搜索时间。另一方面,按字段排序在性能方面要好得多。我会选择#2。

关于search - 按嵌套对象的数量进行 Elasticsearch 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19609498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com