我们使用的是 Azure 搜索 API,但对于不包含字母数字字符的特殊字符,我们没有得到任何结果。
在将字符串包装在引号 ("( 中之前,我们在返回日语和任何特殊字符的任何匹配结果时遇到了问题,请参阅下面的示例(我们也转义了特殊字符。
不起作用的字符串
var searchTerm = "嘘つきな唇で";
var searchTerm = "test@123";
var searchTerm = "?sd-^&*d$£(";
用引号括起来后,即
搜索词 = "\" +搜索词 + "\"*">
上述所有搜索都返回了预期的匹配项,但现在我们遇到了一个问题,即只有特殊字符的字符串没有匹配项,即
var searchTerm = "@@@@";
var searchTerm = "&@*(%$";
new SearchParameters
{
SearchFields = new List<string> {"name", "publicId"},
Top = 50,
SearchMode = SearchMode.Any,
QueryType = QueryType.Simple,
Filter = $"status eq 1"
}
任何这方面的帮助将不胜感激
亲切问候
如果不转义或使用其他分析器(而不是默认的 StandardAnalyzer(,我认为您将无法检索结果,因为您提供的一些示例是保留的/特殊字符:
请检查:
https://learn.microsoft.com/en-us/azure/search/query-lucene-syntax#escaping-special-characters
编辑:请在此处阅读有关分析仪的信息:https://learn.microsoft.com/en-us/azure/search/search-analyzers