在 Azure 搜索中合并 blob
Merge blob in Azure Search
是否可以将多个 blob 合并到单个 Azure 搜索记录中?
完整场景:我们在 cosmosDB 中存储为 json 的公司列表及其在 blob 存储中的相关文档 (.docx/pdf)。一家公司可以拥有多个大小不一的文档,最大可达 20 MB,并且文档数量没有上限。我们如何合并所有文档的内容并推送到 Azure 搜索索引的 'content' 字段,以便我们可以对来自 cosmos 和 blob 的公司数据进行全文搜索。
我研究过 https://www.lytzen.name/2017/01/30/combine-documents-with-other-data-in.html - 教程中讨论的场景在候选人数据和 CV 之间具有一对一的关系。在我们的例子中,公司与其文档之间存在一对多关系。
如有任何帮助/指导,我们将不胜感激。
谢谢
Azure 搜索 Blob Indexer maps each blob to a document in the search index 1:1. At the moment, there isn't a way to merge the content of multiple blobs into a single document automatically. However, you can always write a client application that does this and pushes the aggregated content to the Azure Search index using our SDK or REST API..
我很想了解有关场景的更多信息。每个公司的索引中只有一个文档,您将无法从 blob 存储中搜索单个文档。那是想要的吗?
可以将来自不同数据源的数据合并到搜索索引中的单个文档中,只要您尝试 "assemble" 来自多个字段的文档而不是合并到单个字段中。
请注意:
所有数据源都同意文档密钥是什么。默认情况下,密钥是 blob 路径。由于路径在 blob 之间是唯一的,因此需要就密钥达成一致意味着您需要在 "secondary" blob 上设置元数据 属性,将它们与 "primary" blob 相关联。
您不能使用索引器将多个源文档合并到单个索引字段中,例如 content
。对于存储在 Cosmos DB 中的 JSON 元数据,这可能不是您所需要的,因为您可能希望将该元数据捕获到它自己的字段集中。要合并到 content
字段,您需要编写自己的合并逻辑,如之前的回复中所述。
似乎使您的场景 "just work" 的基本原语是 collection merge - 您将 content
建模为不是字符串,而是一组字符串,其中每个元素都是从您的一个 blob 中提取的。请随时向我们的 UserVoice.
添加关于集合合并功能的建议
我找到的一个解决方案是将文档压缩成 ZIP 并将 ZIP 文件传递给 Azure 搜索索引器。此解决方案的唯一问题是我必须为 ZIP 创建添加另一个处理步骤,并为保留 ZIP
添加额外的存储成本
是否可以将多个 blob 合并到单个 Azure 搜索记录中?
完整场景:我们在 cosmosDB 中存储为 json 的公司列表及其在 blob 存储中的相关文档 (.docx/pdf)。一家公司可以拥有多个大小不一的文档,最大可达 20 MB,并且文档数量没有上限。我们如何合并所有文档的内容并推送到 Azure 搜索索引的 'content' 字段,以便我们可以对来自 cosmos 和 blob 的公司数据进行全文搜索。
我研究过 https://www.lytzen.name/2017/01/30/combine-documents-with-other-data-in.html - 教程中讨论的场景在候选人数据和 CV 之间具有一对一的关系。在我们的例子中,公司与其文档之间存在一对多关系。
如有任何帮助/指导,我们将不胜感激。
谢谢
Azure 搜索 Blob Indexer maps each blob to a document in the search index 1:1. At the moment, there isn't a way to merge the content of multiple blobs into a single document automatically. However, you can always write a client application that does this and pushes the aggregated content to the Azure Search index using our SDK or REST API..
我很想了解有关场景的更多信息。每个公司的索引中只有一个文档,您将无法从 blob 存储中搜索单个文档。那是想要的吗?
可以将来自不同数据源的数据合并到搜索索引中的单个文档中,只要您尝试 "assemble" 来自多个字段的文档而不是合并到单个字段中。
请注意:
所有数据源都同意文档密钥是什么。默认情况下,密钥是 blob 路径。由于路径在 blob 之间是唯一的,因此需要就密钥达成一致意味着您需要在 "secondary" blob 上设置元数据 属性,将它们与 "primary" blob 相关联。
您不能使用索引器将多个源文档合并到单个索引字段中,例如
content
。对于存储在 Cosmos DB 中的 JSON 元数据,这可能不是您所需要的,因为您可能希望将该元数据捕获到它自己的字段集中。要合并到content
字段,您需要编写自己的合并逻辑,如之前的回复中所述。
似乎使您的场景 "just work" 的基本原语是 collection merge - 您将 content
建模为不是字符串,而是一组字符串,其中每个元素都是从您的一个 blob 中提取的。请随时向我们的 UserVoice.
我找到的一个解决方案是将文档压缩成 ZIP 并将 ZIP 文件传递给 Azure 搜索索引器。此解决方案的唯一问题是我必须为 ZIP 创建添加另一个处理步骤,并为保留 ZIP
添加额外的存储成本