使用Azure搜索来搜索Blob存储文件的内容

时间:2018-09-28 06:36:23

标签: c# azure azure-search azure-blob-storage

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

我使用Search Explorer在门户中测试了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方法,但是没有预期的结果。请帮我解决这个问题。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

如果您只关心文本(不使用HTML格式),请查看 content 字段。它会提供您所需的信息。确保 content 字段可在您的搜索索引中检索,以便您将其作为结果的一部分。

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