变音符号不区分大小写的搜索环回
Diacritic Case-Insensitive search Loopback
是否有任何方法可以在 Loopback+MongoDB 上使用变音符号不区分大小写选项查询结果?
例如,如果我要搜索查询 olimpic
,并且数据库中包含如下字词:
Olímpic
olimpic
Olimpic
那么,以上所有内容都应该作为结果返回。
我尝试了下面列出的多个查询和其他组合,但到目前为止没有任何效果。
{"where":{"name.text":{"like":"olimpic","options":"i"}}}
{"where":{"name.text":{"like":"/^olimpic$/i","options":"i"}}}
{"where":{"name.text":{"like":"/.*olimpic.*/i"}}}
{"where":{"name.text":{"regexp":"/.*olimpic.*/i"}}}
有什么想法吗?
提前致谢!
你想要的应该可以text indices as of version 3.1.7 of MongoDB. Please see SERVER-19557了解详情。早期版本无法处理变音符号。
设置文本索引相当简单:只需在您要搜索的所有字段上创建一个索引——每个集合只能有一个文本索引:
db.yourCollection.createIndex(
{"name.text":"text","foo":"text"},
{"default_language":"french"}
)
现在,要搜索您的索引,您只需执行以下操作:
db.yourCollection.find(
{ $text: {$search:"Olimpic"} }
)
这应该会给你预期的结果。
hth
是否有任何方法可以在 Loopback+MongoDB 上使用变音符号不区分大小写选项查询结果?
例如,如果我要搜索查询 olimpic
,并且数据库中包含如下字词:
Olímpic
olimpic
Olimpic
那么,以上所有内容都应该作为结果返回。 我尝试了下面列出的多个查询和其他组合,但到目前为止没有任何效果。
{"where":{"name.text":{"like":"olimpic","options":"i"}}}
{"where":{"name.text":{"like":"/^olimpic$/i","options":"i"}}}
{"where":{"name.text":{"like":"/.*olimpic.*/i"}}}
{"where":{"name.text":{"regexp":"/.*olimpic.*/i"}}}
有什么想法吗?
提前致谢!
你想要的应该可以text indices as of version 3.1.7 of MongoDB. Please see SERVER-19557了解详情。早期版本无法处理变音符号。
设置文本索引相当简单:只需在您要搜索的所有字段上创建一个索引——每个集合只能有一个文本索引:
db.yourCollection.createIndex(
{"name.text":"text","foo":"text"},
{"default_language":"french"}
)
现在,要搜索您的索引,您只需执行以下操作:
db.yourCollection.find(
{ $text: {$search:"Olimpic"} }
)
这应该会给你预期的结果。
hth