如何在mongo文本查询中搜索相似的单词
相似单词的例子:'Jean‘,'Jeann’,'Jeean‘,'Jeaan’
我尝试了mongo的文本查询,我发现的最好的事情是,如果两个文档具有相同的单词但不同的值,我可以用文本分数来获取它们
下面是我尝试的示例:
我在搜索'Jean‘
{
'name': 'Jean foo',
'somethingElse': ['one', 'two', 'three']
},
{
'name': 'Jean bar',
'somethingElse': ['one']
},
,
{
'name': 'Jean',
'somethingElse': ['one']
}我得到了带有文本分数的3个文档,它工作得很好,但我不能得到这样的文档
{
'name': 'Jeaan',
'somethingElse': ['one']
}数据示例:
{
'name': 'Jean',
'somethingElse': ['one', 'two', 'three']
},
{
'name': 'Jeaan',
'somethingElse': ['one']
}
{
'somethingElse': 'Jeann',
'categories': ['one', 'two']
}发布于 2019-08-01 19:25:47
在名称列上创建文本索引:
已创建名为shop的集合:
db.shop.insertMany([{
... 'name': 'Jean',
... 'somethingElse': ['one', 'two', 'three']
... },
... {
... 'name': 'Jeaan',
... 'somethingElse': ['one']
... },
... {
... 'somethingElse': 'Jeann',
... 'categories': ['one', 'two']
... }])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5d42c7be2f40da142ffb5106"),
ObjectId("5d42c7be2f40da142ffb5107"),
ObjectId("5d42c7be2f40da142ffb5108")
]
}Step2:已在名称字段上创建文本索引:
db.shop.createIndex({name:"text"})Step3:
db.shop.find({$text:{$search:"Jean Jeann Jeean Jeaan"}})输出:
{ "_id" : ObjectId("5d42c7be2f40da142ffb5107"), "name" : "Jeaan", "somethingElse" : [ "one" ] }
{ "_id" : ObjectId("5d42c7be2f40da142ffb5106"), "name" : "Jean", "somethingElse" : [ "one", "two", "three" ] }https://stackoverflow.com/questions/57306345
复制相似问题