首页 > 解决方案 > 使用 azure search 搜索 Blob 存储文件内容

问题描述

我想对 blob 存储中的 HTML 文件进行全文搜索。我创建了一个 azure 搜索服务,将数据源添加到服务中,并通过 Azure 门户创建了索引和索引器。

我使用搜索资源管理器在门户中测试了 Azure 搜索服务。它运行良好。

但我想使用 c# 代码在控制台窗口中显示搜索结果,而不是在搜索资源管理器上进行测试。

即使服务的数据源是通过 Azure 门户创建的,我是否必须为 DataSource 编写 POJO 类

以下是代码片段

SearchServiceClient serviceClient = new SearchServiceClient(searchServiceName, new SearchCredentials(searchServiceKey));

ISearchIndexClient indexClient = serviceClient.Indexes.GetClient(indexName);

DocumentSearchResult searchResults = indexClient.Documents.Search(searchText);

我想将搜索结果对象转换为可读文本并显示在控制台窗口中。我尝试了 Base64Decode 方法,但没有预期的结果。请帮助我解决这个问题。

提前致谢!!!

标签: c#azureazure-cognitive-searchazure-blob-storage

解决方案


您收到的文档将是 JSON,其中包含搜索文档的每个字段。

您的问题不清楚是要显示原始 HTML 还是从 HTML 文档中提取的文本。

如果您只关心文本(没有 HTML 格式),请查看内容字段。它将包含您需要的信息。确保内容字段在您的搜索索引中是可检索的,以便您将其作为结果的一部分。

如果您想要具有实际 HTML 格式的文档,通常它不是结果文档的一部分,因为它没有被索引。在这些情况下,通常人们将metadata_storage_path添加到索引中以确保它是可检索的。然后使用该路径,您可以从 blob 存储中读取原始文件。如果您使用metadata_storage_path字段作为索引的键,并使用 base64 对其进行编码,请确保对路径进行解码。


推荐阅读