我在使用MongoDB文本搜索功能时遇到了一些非常有线的行为,可能会重现如下:创建一个仅包含
的新集合{ "tiles" : ["91n2n", "91n2y", "91n39", "91n3k"] }
并使用
添加索引db.test.createIndex({ tiles: "text" })
现在,此查询按预期生成一个结果:
db.test.find({
$text: {
$search: "91n2n",
$language: "none"
}
})
正如搜索" 91n39"和" 91n3k"。然而,由于一些奇怪的原因,它对我来说闻起来像一个臭虫,MongoDB并没有找到" 91n2y",尽管它显然应该。
我可以在OS X上使用MongoDB-3.0.4和MongoDB-3.0.5以及在Linux上使用非常基本的设置重现这一点。此外,我看到与
完全相同的行为{tiles: "91n2n 91n2y 91n39 91n3k"}
或者如果我改变元素的顺序。
这是一个已知的错误或限制,还是我错过了一些明显的东西?