【发布时间】:2021-01-29 18:40:55
【问题描述】:
我正在尝试使用 Atlas 搜索来搜索名称。在我的数据集中,名称分为 FirstName 和 LastName,这对我来说是个问题。
我在聚合中尝试了以下阶段:
{
"$search" : {
"phrase" : {
"query" : "John Doe",
"path" : ["FirstName", "LastName"]
}
}
},
即使我有一个 FirstName = "John" 和 LastName = "Doe" 的文档,也找不到任何结果。 如果我搜索 John 或 Doe,我会得到这个结果。我也尝试使用 $text 而不是 Phrase,即使我在进行该搜索时得到 John Doe,我也会得到任何其他具有 FirstName = John 或 LastName = Doe 的文档,所以我得到的点击次数比我多得多想要。
所以基本上我希望我的搜索返回“John Doe”、“John William Doe”,而不是“Frank Doe”或“John Williams”。
我真的不想在数据库中引入一个新字段来组合名字和姓氏,所以希望有人对此有一个很好的解决方案!
【问题讨论】:
标签: mongodb-atlas mongodb-atlas-search