如何以一个levenshtein距离在mongodb中获取所有文档。
我有足球队的收藏。
{
name: 'Real Madrir',
nicknames: ['Real', 'Madrid', 'Real Madrir' ... ]
}
Run Code Online (Sandbox Code Playgroud)
与用户搜索Real Madid的Maddrid或别的东西。
我想将包含昵称的所有文档返回给定搜索字符串的距离为0或1 levenshtein的所有文档。
我认为有两种方式,mongodb全文搜索或正则表达式。
那我可以写这样的正则表达式或查询吗?
谢谢。
我已经从 mongo shell 为集合 X 创建了一个文本索引
db.X.ensureIndex({name: 'text', cusines: 'text', 'address.city': 'text'})
Run Code Online (Sandbox Code Playgroud)
现在,如果一个文档的 name 属性值为seasons,则其长度为 7
所以如果我运行查找查询(搜索字符串长度<= 5)
db.X.find({$text: {$search: 'seaso'}})
Run Code Online (Sandbox Code Playgroud)
如果我将搜索字符串更改为season (长度 >= 6) ,它不会返回任何值,然后返回文档。
现在我的问题是搜索字符串是否有一些最小长度限制来获取记录。如果是的话有什么办法可以改变吗?