【问题标题】:Azure Cognititve search API connection timeoutAzure 认知搜索 API 连接超时
【发布时间】:2020-01-08 10:10:10
【问题描述】:

创建了一个示例 azure 搜索服务并为其导入示例数据,能够使用 Postman 的 azure 认知搜索 API 获取数据,但出现以下异常

' SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 '

internal async Task<string> Getresult()
{
    HttpClient client = new HttpClient();
    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("api-key", adminApiKey);
    var result = await client.GetAsync(searchServiceName);//line where exception occurs
    string resultContent = result.Content.ReadAsStringAsync().Result;
    return resultContent;
}

修改后的代码

internal async Task<Hotel> Getresult(string search)
{
    SearchIndexClient indexClient = new SearchIndexClient(searchServiceName, "hotels-sample-index", new SearchCredentials(adminApiKey));
    var results = indexClient.Documents.Search<Hotel>("*");
    return results;
}

得到错误

'不能将类型'Microsoft.Azure.Search.Models.DocumentSearchResult'隐式转换为'Models.Hotel' '

【问题讨论】:

    标签: .net azure rest azure-search-.net-sdk


    【解决方案1】:

    您应该使用 Azure 认知搜索 API。这要容易得多:

    1-安装包 Microsoft.Azure.Search

    SearchIndexClient indexClient = new SearchIndexClient(searchServiceName, indexName, new SearchCredentials(queryApiKey));
    
    ISearchIndexClient indexClient = serviceClient.Indexes.GetClient(indexName);
    
    var results = indexClient.Documents.Search<Hotel>("motel", parameters);
    

    https://docs.microsoft.com/en-us/azure/search/search-howto-dotnet-sdk

    【讨论】:

    • 已安装和添加的代码出现此错误无法将类型'Microsoft.Azure.Search.Models.DocumentSearchResult'隐式转换为'Models.Hotel'跨度>
    • 这是一个示例 ....您应该将 json 转换为存储在 Azure 认知搜索索引中的文档类型
    猜你喜欢
    • 2023-01-05
    • 2013-04-08
    • 1970-01-01
    • 2020-03-27
    • 2023-01-05
    • 1970-01-01
    • 2022-01-15
    • 2022-01-12
    • 2021-09-21
    相关资源
    最近更新 更多