推送文档(blob)以进行索引 - Azure 搜索

Posted

技术标签:

【中文标题】推送文档(blob)以进行索引 - Azure 搜索【英文标题】:Pushing documents(blobs) for indexing - Azure Search 【发布时间】:2018-09-07 11:27:32 【问题描述】:

我一直在使用 Azure 搜索 + Azure Blob 存储,但在为上传的新文件索引增量更改时遇到了麻烦。

将新文件上传到我的 Blob 容器后,如何刷新索引?上传文件后按照我的步骤(我正在使用休息服务来执行这些操作):我正在使用 Microsoft Azure 存储资源管理器 [link]。

通过这个应用程序,我已将我的新文件上传到之前已经创建的文件夹中。之后,我使用 Http REST 执行“运行”索引器命令,您可以在此 [link] 中看到。

索引器显示我的新文件已成功添加,但是当我去搜索这个新文件中的内容时却找不到。

请问,有人知道如何在索引中添加这个新文件,以及如何通过搜索他的内容找到这个新文件吗?

我正在关注 Microsoft 教程,但对于这个问题,我找不到解决方案。

谢谢各位!

【问题讨论】:

【参考方案1】:

假设一切设置正确,您无需执行任何特殊操作 - 下次索引器根据其计划运行时,新的 blob 将被拾取并编制索引,或者您按需运行索引器。

但是,当您按需运行索引器时,成功完成Run Indexer API 意味着已经提交了运行索引器的请求; 并不意味着索引器已完成运行。要确定索引器何时真正完成运行(并观察错误,如果有的话),您应该使用Indexer Status API。

如果您仍有疑问,请告诉我们您的服务名称和索引器名称,我们可以仔细查看遥测数据。

【讨论】:

【参考方案2】:

我将尝试描述如何解决这个问题。

首先,我通过这个命令创建了一个数据源:

POST https://[service name].search.windows.net/datasources?api-version=[api-version]

https://docs.microsoft.com/en-us/rest/api/searchservice/create-data-source.

其次,我创建了索引:

POST https://[servicename].search.windows.net/indexes?api-version=[api-version] 

https://docs.microsoft.com/en-us/rest/api/searchservice/create-index

最后,我创建了索引器。问题出现在这个时刻,因为它是设置所有配置的地方。

POST https://[service name].search.windows.net/indexers?api-version=[api-version]

https://docs.microsoft.com/en-us/rest/api/searchservice/create-indexer

在完成所有这些事情之后。索引开始自动索引所有内容(一旦我们将内容放入 blob 存储中)。

现在关键的事情来了。当您的索引尝试将所有“文本”提取到文件中时,当文件类型不是“可索引”时,可能会出现一些问题。例如,有两个属性你必须注意excluded extensionsindexed extensions

如果您没有正确编写类型,索引会引发异常。然后,反馈消息(在我看来不好,就像'未命中')说要避免此错误,您应该将索引器设置为'"dataToExtract" : "storageMetadata"'。

这个命令意味着你只是试图索引元数据而不是你的文件的内容,那么你不能通过这个搜索和检索。

之后,底部的相同消息说要避免这些问题,您应该设置两个属性(谁解决了问题)

"failOnUnprocessableDocument" : false,"failOnUnsupportedContentType" : false

此外,现在一切正常。感谢@Eugene Shvets 的帮助,我希望这对其他人有用。

【讨论】:

以上是关于推送文档(blob)以进行索引 - Azure 搜索的主要内容,如果未能解决你的问题,请参考以下文章

我是不是必须将 Azure Blob 存储中的 PDF 文件存储到 OCR 并为其编制索引?

Azure Blob 存储:是不是可以使用特定虚拟文件夹(路径)内的 Blob 索引标签进行搜索?

Azure Blob 文件索引检索查询 -- RedisSearch 篇

Azure Blob (pyarrow) 上的分区 Parquet 文件

xamarin Forms Azure 通知中心

以编程方式创建 Azure 推送通知中心