MongoDB-$search在mongo Atlas中引发未知错误



我正在使用mongo Atlas来使用$search聚合管道阶段。我知道$search聚合管道阶段只适用于MongoDB Atlas集群上托管的集合,并且我有适当的订阅,所以这不是问题所在。我正在尝试用自动完成运算符编写一个$search阶段。当我键入单词时,我想显示所有匹配的值作为结果。

[
{
'$search': {
'index': 'Custom_Test', 
'autocomplete': {
'path': 'SomeFileName', 
'query': 'Test', 
'tokenOrder': 'sequential'
}, 
'highlight': {
'path': [
'SomeFileName'
]
}
}
}, {
'$limit': 10
}, {
'$project': {
'_id': 1, 
'SomeFileName': '$SomeFileName', 
'Ancestors': 1, 
'highlights': {
'$meta': 'searchHighlights'
}
}
}
]

因此,当我通过测试时,它应该返回所有匹配的SomeFileName字段。我也尝试删除索引,因为如果没有提到,它会选择默认值,并尝试过,但没有用。欢迎提供任何指导。

我知道$search聚合管道阶段仅适用于MongoDB Atlas上托管的集合。

这是不准确的,图集搜索是一个单独的功能"不相关";到基础Mongodb产品。它是使用lucene引擎构建的,类似于许多现代文本搜索引擎。

这意味着它实际上维护了一个单独的反向索引数据库,以允许这样的文本搜索功能。这也意味着数据需要相应地准备和标记——没有一个神奇的搜索层可以在不进行预处理的情况下实现这样的性能。

您需要创建一个新的集合作为搜索索引,定义适当的映射和标记化方法,并在其中插入数据以便进行准备。这其实很简单,只需按照他们的文档了解如何做到这一点。

最后的免责声明这个答案有些不准确,因为我决定简化解释。

相关内容

  • 没有找到相关文章

最新更新