- 我将展示这是如何在 c# 中完成的
- 你需要一个 appsettings.json
- 您需要在 program.cs 文件中使用此代码
- 示例中有很多来自document 的其他文件
您可能需要使用、学习和编辑您的用例
在使用 c# 和 azure 工作时,请始终首先了解构建解决方案的文件的独特之处。这就是我们在学习解决方案时从文档中构建示例的原因。接下来,我们必须研究在执行时为整个解决方案提供一个特性或功能的不同代码块。
appsettings.json
{
"SearchServiceName": "[Put your search service name here]",
"SearchIndexName": "hotels",
"SearchServiceAdminApiKey": "[Put your primary or secondary Admin API key here]",
"SearchServiceQueryApiKey": "[Put your primary or secondary Query API key here]"
}
Program.cs
namespace AzureSearch.SDKHowTo
{
using System;
using System.Linq;
using System.Threading;
using Microsoft.Azure.Search;
using Microsoft.Azure.Search.Models;
using Microsoft.Extensions.Configuration;
using Microsoft.Spatial;
// This sample shows how to delete, create, upload documents and query an index
static void Main(string[] args)
{
IConfigurationBuilder builder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
IConfigurationRoot configuration = builder.Build();
SearchServiceClient serviceClient = CreateSearchServiceClient(configuration);
string indexName = configuration["SearchIndexName"];
Console.WriteLine("{0}", "Deleting index...\n");
DeleteIndexIfExists(indexName, serviceClient);
Console.WriteLine("{0}", "Creating index...\n");
CreateIndex(indexName, serviceClient);
ISearchIndexClient indexClient = serviceClient.Indexes.GetClient(indexName);
Console.WriteLine("{0}", "Uploading documents...\n");
UploadDocuments(indexClient);
ISearchIndexClient indexClientForQueries = CreateSearchIndexClient(indexName, configuration);
RunQueries(indexClientForQueries);
Console.WriteLine("{0}", "Complete. Press any key to end application...\n");
Console.ReadKey();
}
private static SearchServiceClient CreateSearchServiceClient(IConfigurationRoot configuration)
{
string searchServiceName = configuration["SearchServiceName"];
string adminApiKey = configuration["SearchServiceAdminApiKey"];
SearchServiceClient serviceClient = new SearchServiceClient(searchServiceName, new SearchCredentials(adminApiKey));
return serviceClient;
}
private static SearchIndexClient CreateSearchIndexClient(string indexName, IConfigurationRoot configuration)
{
string searchServiceName = configuration["SearchServiceName"];
string queryApiKey = configuration["SearchServiceQueryApiKey"];
SearchIndexClient indexClient = new SearchIndexClient(searchServiceName, indexName, new SearchCredentials(queryApiKey));
return indexClient;
}
private static void DeleteIndexIfExists(string indexName, SearchServiceClient serviceClient)
{
if (serviceClient.Indexes.Exists(indexName))
{
serviceClient.Indexes.Delete(indexName);
}
}
private static void CreateIndex(string indexName, SearchServiceClient serviceClient)
{
var definition = new Index()
{
Name = indexName,
Fields = FieldBuilder.BuildForType<Hotel>()
};
serviceClient.Indexes.Create(definition);
}}
要学习的 Azure 概念
- 我们如何以及为何创建 azure 客户端
- 我们为什么要使用 appsettings.json
- 什么是 azure 搜索解决方案的示例文件结构
- 您想使用哪种编码语言来构建该解决方案
- 你想使用 azure sdk
- 如何查找和创建 api 密钥
需要学习的 C# 概念
您可以看到 azure 和 c# 的学习曲线很高。
幸运的是,您有堆栈溢出和文档来研究上述所有问题等等:)
关于您将如何进行故障排除...我所做的是研究文档示例中的每个代码块并在本地运行所有代码。然后我一次测试每个代码块。你总是通过代码块来测试数据流。因此,您可以通过创建测试变量并将该变量打印到控制台来控制台记录代码块的结果。
因为每个代码块代表一个特性或功能,每个测试将输出该特性或功能的通过或失败交付。因此,您可以设计功能、实施该设计并为新功能创建测试。