首页 > 解决方案 > 跨 37 种语言的 Azure 搜索

问题描述

我们有一个将英文内容和翻译内容(37 种语言)保存在 blob 存储中的网站。每个在 blob 中都有自己的文件夹结构。

下面的示例: Insider-progams/windows-insider/en-us/…一堆 json 文件来索引 Insider-progams/windows-insider/ru-ru/…一堆 json 文件来索引 Insider-progams/windows-insider/es -es/…一堆 json 文件来索引 Insider-progams/windows-insider/fr-fr/…一堆 json 文件来索引

我们目前有一个 .NET 服务,它充当 API 来获取此内容并将其返回到我们的 Angular Web 应用程序。但是,我们正在进入需要跨所有语言搜索内容的场景。

这是否意味着我们需要 37 个单独的索引?每种语言一个?或者我们只是传递一个参数来从 API 中获取我们想要的语言数据。

我还担心索引可能会变得多大以及构建需要多长时间。当新内容到达时,我们需要按需重建索引。

我们还打算使用搜索 API 来对我们的内容进行基本数据检索以及分页。

标签: azure-cognitive-search

解决方案


您不需要为每种语言创建一个索引,每种语言只需要一。请参阅https://docs.microsoft.com/en-us/azure/search/search-language-support,了解如何为每个列/语言使用不同的分析器创建索引。

索引器可以自动跟踪存储帐户中的 blob,以定期获取新 blob 并增量构建索引,而无需重新处理所有内容。

根据您的要求和用例,有一些填充索引的选项。最简单的选择是为每种语言创建一个索引器,按 blob 文件夹过滤,以索引中的相应列为目标。如果您需要更多语言功能或控制结构,请考虑向索引器添加技能集,该技能集能够检测语言翻译提取关键短语根据条件做出决策或插入自定义技能。最后一个选项是自己管理在索引中添加/更新/删除文档,这对于将存储帐户中的任何更改反映在索引中具有最低的延迟。

请参阅搜索 API以搜索文档和分页结果。


推荐阅读