我在其中一个项目中使用Azure搜索,并且要求搜索不区分大小写的电子邮件地址。 例如。 emusk @ gmail.com,EMusk @ gmail.com,eMusk@gmail.com都应该返回相同的结果。 我在创建索引时使用自定义分析器(uax_url_email) https://docs.microsoft.com/en-in/rest/api/searchservice/custom-analyzers-in-azure-search#AnalyzerTable
这是索引的部分
[{
"name": "Username",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"sortable": false,
"facetable": false,
"analyzer": "email_analyzer"
},
],
"analyzers": [
{
"name": "email_analyzer",
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"tokenizer": "uax_url_email",
"tokenFilters": ["lowercase"]
}]
但搜索不适用于Emusk@gmail.com。有人可以帮忙吗?
答案 0 :(得分:0)
我使用相同的自定义分析器创建了一个索引,并通过不区分大小写的匹配获得了预期的结果。我使用了一个简单的查询 - search=EMusk@gmail.com
您可以分享使用的确切查询吗?
您还可以检查是否正在对字段进行分析和索引。您可以将Analyze API用于此目的。
答案 1 :(得分:0)
所以,这是我所做的解决方法。我的数据库电子邮件包含大写字母,如'EMusk@gmail.com' 我要求能够搜索包含以及完整搜索,这意味着: emusk @ gmail.com,EMusk @ gmail.com,musk @gmail.com都应该返回结果。 所以,我做了以下事情: