gpt4 book ai didi

MongoDB Atlas 搜索 : sort by "searchScore"

转载 作者:行者123 更新时间:2023-12-05 06:02:54 25 4
gpt4 key购买 nike

我运行以下聚合管道并且运行良好:

[
{
$search: {
text: {
query: text,
path: 'name',
fuzzy: {
maxEdits: 2,
prefixLength: 0,
maxExpansions: 256,
},
},
},
},
{
$limit: 10,
},
{
$project: {
_id: 1,
name: 1,
score: { $meta: 'searchScore' },
},
},
]

我可以看到分数字段出现在我的结果中并且是正确的。现在我想对 $meta-property searchScore 检索到的文档进行排序。但是,在管道末尾添加此步骤:

{
$sort: { score: { $meta: 'searchScore' }, _id: 1 },
}

产生以下错误:

MongoError: $meta sort by 'searchScore' metadata is not supported

我如何实现这一目标?

最佳答案

您需要在排序之前添加一个包含 $meta 结果的新字段(您已经这样做了),然后对该字段进行排序,因此您的新管道将是:

...

{
$project: {
_id: 1,
name: 1,
score: { $meta: 'searchScore' }, // you are already adding the field here.
},
},
{
$sort: {
score: -1, // use the new computed field here.
_id: 1
}
}

关于MongoDB Atlas 搜索 : sort by "searchScore",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66801614/

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