C# 将Azure搜索与虚拟助手模板bot集成

C# 将Azure搜索与虚拟助手模板bot集成,c#,azure,botframework,azure-cognitive-search,C#,Azure,Botframework,Azure Cognitive Search,我目前有一个功能齐全的基于虚拟助手模板的聊天机器人,附带一项技能。我的目标是让这个技能作为一个搜索功能来工作,它可以在CosmosDB中找到资源并将它们拉回来供用户使用。在做了一些研究之后,我相信最好的方法是使用Azure搜索来检索所说的信息。从我在Virtual Assistant模板文档中看到的情况来看,与Azure Search的集成肯定是可能的。。。我只是没有找到任何关于如何做到这一点的示例或教程。如果有人知道如何创建azure搜索资源并将其集成到机器人中,或者知道告诉您如何创建azur

我目前有一个功能齐全的基于虚拟助手模板的聊天机器人,附带一项技能。我的目标是让这个技能作为一个搜索功能来工作,它可以在CosmosDB中找到资源并将它们拉回来供用户使用。在做了一些研究之后,我相信最好的方法是使用Azure搜索来检索所说的信息。从我在Virtual Assistant模板文档中看到的情况来看,与Azure Search的集成肯定是可能的。。。我只是没有找到任何关于如何做到这一点的示例或教程。如果有人知道如何创建azure搜索资源并将其集成到机器人中,或者知道告诉您如何创建azure搜索资源的资源,请让我知道

对于您的场景,要做的概述是:

创建一个 在这种情况下,创建一个指向Cosmos DB数据源的数据库。以下是有关如何在Cosmos DB中浏览数据的特定文档: 一旦你的索引器运行并爬网了你的数据,它应该可以从你的搜索索引中的应用程序进行搜索。 没有关于与机器人集成的端到端教程,但这里有一个Azure搜索教程,它展示了一个完整的场景,即在SQL数据库中爬行,然后使用全文搜索。


您应该能够遵循那里的大部分指导,除了在上面的链接中用Cosmos DB indexer的详细信息替换关于SQL indexer的部分。

我只想在AzureBlob而不是Cosmos DB中进行类似的搜索。我正在为我的bot框架和visualstudio 2019使用sdkv4。我正试图通过以下代码调用该服务:

    public ISearchIndexClient CreateSearchIndexClient()
    {
        string searchServiceName = "MySearchServiceName";
        string queryApiKey = "MySearchServiceKey";
        string indexName = "MyIndexName";

        SearchIndexClient indexClient = new SearchIndexClient(searchServiceName, indexName, new SearchCredentials(queryApiKey));
        return indexClient;
    }

    public async Task StartAsync(ITurnContext turnContext, string searchText){
        ISearchIndexClient infoClient = CreateSearchIndexClient();

        string indexname = infoClient.IndexName;
        DocumentSearchResult<Document> results = infoClient.Documents.Search(searchText);

        await turnContext.SendActivityAsync(MessageFactory.Text($"Here should be the results: {results} \n...and then my index: {indexname}."));
    }

它运行时没有错误,因此可以使用它。但它从未在StartAsync上显示消息。如果有人看到我遗漏了什么,请提前感谢你。

其实都在这里:只需做一些修改,然后将示例代码添加到你的机器人上。你会将这些代码放在哪里?都在MainDialog.cs文件中吗?我还没有在我的机器人中集成对话框,所以我会在你的机器人的主体中回答,但我想这是MainDialog.cs,是的。