Azure 搜索按非完整单词和特殊字符搜索不起作用
Azure Search searching by not full word with special characters is not working
我想使用 Azure Search .NET SDK 搜索包含特殊字符的字符串。
我尝试转义每个特殊字符,尝试使用 full query syntax
并尝试通配符,但没有任何效果。
方法如下:
public virtual async Task<SearchResultDto<T>> Search(string query, SearchOptionsInput searchOptionsInput)
{
if (!_azureOptions.IsEnabled)
{
return null;
}
var searchIndexClient = GetSearchIndexClientForGivenType();
var searchParameters = _objectMapper.Map<SearchParameters>(searchOptionsInput);
searchParameters.QueryType = QueryType.Full;
var searchResult = await searchIndexClient.Documents.SearchAsync<T>(query, searchParameters);
return new SearchResultDto<T>
{
Count = searchResult.Count,
Results = searchResult.Results.Select(r => r.Document).ToList(),
FacetResults = searchResult.Facets,
};
}
我有 Name
字段设置为 $@!Q$@!
的文档。当我在查询中编写它并转义感叹号(如 $@\!Q$@\!
)时,我得到了正确的结果。但是当我删除最后一个 !
并在查询中写入 *
通配符时,我没有得到任何结果。没有任何征兆也没有结果
有没有办法正确写入特殊字符,以便搜索 return 匹配结果,例如。当我写 $@\!*
?
目前还没有可用于转义特殊字符的内置方法。但是必须转义特殊字符才能用作搜索文本的一部分。您可以通过在它们前面加上反斜杠 \
来转义它们。需要转义的特殊字符包括:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
例如,要转义通配符,请使用 **\***
。
更多详情请查看下方link:
https://docs.microsoft.com/en-us/azure/search/query-lucene-syntax#escaping-special-characters
请在下面为实施此功能的用户语音请求投票 link,这将帮助我们确定请求的优先级。
希望对您有所帮助。
我想使用 Azure Search .NET SDK 搜索包含特殊字符的字符串。
我尝试转义每个特殊字符,尝试使用 full query syntax
并尝试通配符,但没有任何效果。
方法如下:
public virtual async Task<SearchResultDto<T>> Search(string query, SearchOptionsInput searchOptionsInput)
{
if (!_azureOptions.IsEnabled)
{
return null;
}
var searchIndexClient = GetSearchIndexClientForGivenType();
var searchParameters = _objectMapper.Map<SearchParameters>(searchOptionsInput);
searchParameters.QueryType = QueryType.Full;
var searchResult = await searchIndexClient.Documents.SearchAsync<T>(query, searchParameters);
return new SearchResultDto<T>
{
Count = searchResult.Count,
Results = searchResult.Results.Select(r => r.Document).ToList(),
FacetResults = searchResult.Facets,
};
}
我有 Name
字段设置为 $@!Q$@!
的文档。当我在查询中编写它并转义感叹号(如 $@\!Q$@\!
)时,我得到了正确的结果。但是当我删除最后一个 !
并在查询中写入 *
通配符时,我没有得到任何结果。没有任何征兆也没有结果
有没有办法正确写入特殊字符,以便搜索 return 匹配结果,例如。当我写 $@\!*
?
目前还没有可用于转义特殊字符的内置方法。但是必须转义特殊字符才能用作搜索文本的一部分。您可以通过在它们前面加上反斜杠 \
来转义它们。需要转义的特殊字符包括:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
例如,要转义通配符,请使用 **\***
。
更多详情请查看下方link:
https://docs.microsoft.com/en-us/azure/search/query-lucene-syntax#escaping-special-characters
请在下面为实施此功能的用户语音请求投票 link,这将帮助我们确定请求的优先级。
希望对您有所帮助。