MongoDB 和全文搜索部分词
MongoDB and fulltext search part of the word
我需要找到这个词的一部分,如果我搜索 len 就可以找到所有以 len 开头的词。
我正在尝试在 MongoDB 中使用全文搜索,当它命中 100% 的单词而不仅仅是单词的一部分时,它运行良好。
有 sombardy 给我解决这个问题的方法吗?
有效的示例代码:
db.getCollection('product').find({
'$and' : [{
'$text': {
'$search' : 'lenovo', // match word
'$caseSensitive' : false
},
'$text': {
'$search' : 'y50 b50 y700', // synonym prepared
'$caseSensitive' : false
}
}]
})
示例代码我想得到相同的结果:
db.getCollection('product').find({
'$and' : [{
'$text': {
'$search' : 'len',
'$caseSensitive' : false
},
'$text': {
'$search' : 'y50 b50 y700',
'$caseSensitive' : false
}
}]
})
感谢您抽出宝贵时间,希望我能在 MongoDB
中获得有关此全文搜索的帮助
如果你想在 mongo 中进行全文搜索,那么你应该使用 $regex 查询
db.product.find({name:{$regex:/len/i}})
有关更多信息,您也可以阅读文档。
https://docs.mongodb.com/manual/reference/operator/query/regex/
我需要找到这个词的一部分,如果我搜索 len 就可以找到所有以 len 开头的词。
我正在尝试在 MongoDB 中使用全文搜索,当它命中 100% 的单词而不仅仅是单词的一部分时,它运行良好。
有 sombardy 给我解决这个问题的方法吗?
有效的示例代码:
db.getCollection('product').find({
'$and' : [{
'$text': {
'$search' : 'lenovo', // match word
'$caseSensitive' : false
},
'$text': {
'$search' : 'y50 b50 y700', // synonym prepared
'$caseSensitive' : false
}
}]
})
示例代码我想得到相同的结果:
db.getCollection('product').find({
'$and' : [{
'$text': {
'$search' : 'len',
'$caseSensitive' : false
},
'$text': {
'$search' : 'y50 b50 y700',
'$caseSensitive' : false
}
}]
})
感谢您抽出宝贵时间,希望我能在 MongoDB
中获得有关此全文搜索的帮助如果你想在 mongo 中进行全文搜索,那么你应该使用 $regex 查询
db.product.find({name:{$regex:/len/i}})
有关更多信息,您也可以阅读文档。 https://docs.mongodb.com/manual/reference/operator/query/regex/