我将我的SQL数据迁移到AzureSearch文档中以尝试新的搜索体验。我无法使用.net sdk(3.0.4)
过滤数据public IActionResult Search(string state, string category, string search, short pageNumber = 1, short pageSize = 10)
{
SearchIndexClient indexClient = new SearchIndexClient(searchServiceName, "search", new SearchCredentials(searchServiceApiKey));
DocumentSearchResult<SearchResultDto> results = null;
if (string.IsNullOrWhiteSpace(search))
search = "*";
if (state.Equals("All", StringComparison.InvariantCultureIgnoreCase))
state = string.Empty;
SearchParameters parameters = new SearchParameters()
{
Filter = "state eq " + state,
Top = pageSize,
Skip = (pageNumber - 1) * pageSize,
SearchMode = SearchMode.All,
IncludeTotalResultCount = true
};
try
{
results = indexClient.Documents.Search<SearchResultDto>(search, parameters);
return Ok(results.Results);
}
catch (Exception ex)
{
Console.WriteLine("Error querying index: {0}\r\n", ex.Message.ToString());
throw ex;
}
}
我收到错误&#34;调用目标引发了异常。&#34;
参数原始值:$ count = true&amp; $ filter = state%20eq%20&amp; queryType = simple&amp; searchMode = all&amp; $ skip = 0&amp; $ top = 10
当我在AzureSearch中使用参数值时,我发现错误 表达式无效:预期位于第19位的表达式eq delhi eq&#39;。\ r \ n参数名称:$ filter
我的代码出了什么问题?
答案 0 :(得分:1)
您的过滤器存在一些问题。