通过正则表达式搜索Atlas



使用Atlas进行全文搜索的最佳方式是什么?例如,我把mike@我想看到da.mike@gmail.commike@gmail.com...但不是像mikke@..这样的东西。mmike@…,这样的结果可以显示使用自动补全的搜索。据我所知,我很可能需要使用regex

{
"$search": {
"index": "free-text",
{
"regex": {
"path": "email",
"query": ".*mike@.*",
},
},
},
}

在此之前我创建了搜索索引:

"email": [{
"tokenization": "nGram",
"type": "autocomplete"
},
{
"analyzer": "lucene.keyword",
"type": "string"
}
]

它几乎工作得很好,但它是大小写敏感的,我不知道如何将其发送为不敏感的所以,1。有没有更好的方法来建立这样的搜索?

2。如果是这样,如何做一个正则表达式搜索不敏感的情况?

谢谢你的帮助,伙计们!

尝试创建一个自动补全类型的索引,并将查询构建为短语、正则表达式、自动补全,但结果并不好。

对于您的电子邮件,您可以使用特定于电子邮件的标记器:https://www.mongodb.com/docs/atlas/atlas-search/analyzers/tokenizers/#uaxurlemail

然后我建议使用不同的分析器而不是关键字来获得不区分大小写。查看这个webtool来使用这些选项(里面有一个电子邮件的例子)

相关内容

  • 没有找到相关文章

最新更新