我有一个geoNear聚合查询,其中还包含一个$ match,它使用$ text搜索关键字。当单词与数据库中的字段完全匹配时,我得到重复的结果。第二个结果仅与距离不同。我尝试在查询中包含唯一选项,但第二个结果是唯一的。在升级到最新版本的mongo驱动程序之前,更改索引中的字段确实有效。现在将字段移动到索引的顶部会返回相同的重复结果。该字段是32的最高权重。任何想法为什么我得到重复的结果没有距离?
答案 0 :(得分:0)
经过一番研究和反复试验后,我发现搜索文本的索引顺序和权重对此有很大的影响。不幸的是,从我们的部署js文件到mongo,我们无法设置搜索文本索引的顺序。我通过在lodash中使用union来解决这个问题。此外,您还必须在$ geoNear查询中设置“唯一”选项。