推送用于索引的文档(blob) - Azure搜索

时间:2018-03-28 16:57:17

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

我一直在Azure Search + Azure Blob存储中工作,而且我在上传新文件的增量更改索引时遇到了麻烦。

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

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

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

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

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

谢谢,伙计们!

2 个答案:

答案 0 :(得分:1)

假设一切设置正确,您不需要做任何特别的事情 - 下一次索引器根据其计划运行时会拾取并索引新的blob,或者根据需要运行索引器。

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

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

答案 1 :(得分:0)

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

首先,我通过此命令创建了一个DataSource:

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存储中)。

现在至关重要的是。当你的索引试图提取所有文本时#39;如果文件类型不是“可索引的”,则可能会出现问题。例如,您必须注意两个属性已排除的扩展程序已建立索引的扩展程序

如果您没有正确编写类型,则Index会抛出异常。然后,反馈消息(在我看来并不好,就像一个' miss miss')说要避免这个错误,你应该将Indexer设置为' {{ 1}}'

此命令意味着您只是尝试索引元数据,而不是文件的内容,然后您无法通过此搜索并检索。

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

"dataToExtract" : "storageMetadata"

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