你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于电子商务的智能产品搜索引擎

Azure AI 机器人服务
Azure AI 搜索
Azure AI 服务
Azure SQL 数据库
Azure 应用服务

本示例方案演示如何使用专用搜索服务来大幅提高电子商务客户搜索结果的相关性。

体系结构

显示电子商务智能产品搜索引擎中涉及的 Azure 组件的体系结构概况的示意图。

下载此体系结构的 Visio 文件

工作流

此方案包括一个电子商务解决方案,其中的客户可以搜索产品目录。

  1. 客户从任意设备转到电子商务 Web 应用程序
  2. 产品目录在 Azure SQL 数据库中维护,以进行事务处理。
  3. Azure AI 搜索使用搜索索引器,通过集成式更改跟踪来自动保持其搜索索引的最新状态。
  4. 客户的搜索查询卸载到 AI 搜索服务,后者处理查询并返回最相关的结果。
  5. 作为基于 Web 的搜索体验的替代方案,客户还可以在社交媒体中或者直接从数码助手中使用聊天机器人来搜索产品,并逐渐优化其搜索查询和结果。
  6. 可以可以选择性地使用技能组功能,运用人工智能进行更智能化的处理。

组件

  • Azure 应用程序服务 - Web 应用托管的 Web 应用程序可以实现自动缩放和高可用性,无需管理基础结构。
  • Azure SQL 数据库是 Microsoft Azure 中通用的关系数据库托管服务,支持关系数据、JSON、空间和 XML 等结构。
  • AI 搜索是一种云解决方案,可以根据 Web、移动和企业应用程序中的专用异类内容提供丰富的搜索体验。
  • Azure AI 机器人服务提供的工具可用于生成、测试、部署和管理智能机器人。
  • Azure AI 服务允许使用智能算法,以自然的沟通方式来观察、倾听、表述、了解和解释用户需求。

备选方法

  • 可以使用数据库中搜索功能(例如,使用 SQL Server 全文搜索),但随后事务存储也会处理查询(从而需要增大处理能力),并且数据库中的搜索功能存在更大的限制。
  • 可将开源 Apache Lucene(Azure AI 搜索的构建基础)托管在 Azure 虚拟机上,但随后你仍要管理基础结构即服务 (IaaS),并且无法受益于 Azure AI 搜索在 Lucene 上提供的许多功能。
  • 还可以考虑部署 Azure 市场中提供的 Elasticsearch,这是第三方供应商提供的支持搜索的替代产品,但在这种情况下,也要运行 IaaS 工作负载。

可用于数据层的其他选项包括:

  • Azure Cosmos DB - Microsoft 提供的全球分布式多模型数据库。 Azure Cosmos DB 提供的平台适合运行其他数据模型,例如 MongoDB、Cassandra、Graph 数据或简单的表存储。 AI 搜索还支持直接为 Azure Cosmos DB 中的数据编制索引。

方案详细信息

搜索是可让客户找到并最终购买产品的主要机制,因此,至关重要的是,搜索结果必须与搜索查询的意向相关,并且通过提供接近实时的结果、语言分析、地理位置匹配、筛选、分面、自动完成和匹配项突出显示等,端到端的搜索体验可与各大搜索引擎巨头匹敌。

假设某个典型电子商务 Web 应用程序的产品数据存储在 SQL Server 或 SQL 数据库等关系数据库中。 搜索查询通常使用 LIKE 查询或全文搜索功能在数据库内部处理。 如果改用 AI 搜索,则可以解放操作数据库,使其不用执行查询处理,同时,让你可以轻松开始利用这些难以实现的功能,让它们尽量为客户提供最佳的搜索体验。 此外,由于 AI 搜索是一个平台即服务 (PaaS) 组件,因此无需考虑如何管理基础结构或成为搜索专家。

可能的用例

此解决方案针对零售行业进行了优化。

其他相关用例包括:

  • 查找用户物理位置附近的房地产列表或商店(设施和房地产行业)。
  • 在新闻网站中搜索新闻文章,或查找赛事结果,其中最近的信息排在前面(体育、媒体和娱乐行业)。
  • 在大型存储库中搜索决策人和公证人等以文档为中心的组织。

最终,包含某种搜索功能的任何应用程序都可以从专用的搜索服务中受益。

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

可伸缩性

Azure AI 搜索服务的定价层主要用于容量计划,因为它定义了提供的最大存储量,以及可以预配的分区和副本数目。 使用分区可为更多文档编制索引并获取更高的写入吞吐量,而副本提供更高的每秒查询次数 (QPS) 和高可用性。

可以动态更改分区和副本的数量,但不可能更改定价层。 因此,应谨慎考虑适合目标工作负载的级别。 如果仍然需要更改层,请并列预配一个新服务并将索引重新加载到该服务,此时,可将应用程序指向新服务。

可用性

如果至少有两个副本,则 AI 搜索可为读取(即查询)操作提供 99.9% 的可用性服务级别协议 (SLA);如果至少有三个副本,则可为更新(即,更新搜索索引)操作提供同等的 SLA。 因此,如果希望客户能够可靠地执行搜索,则至少应预配 2 个副本;如果要将索引的实际更改视为高可用性操作,则至少应预配 3 个副本。

如果需要在不停机的情况下对索引进行重大更改(例如,更改数据类型、删除或重命名字段),则需要重建索引。 类似于更改服务层级,这意味着要创建新索引、在其中填充数据,然后将应用程序更新为指向新索引。

安全性

AI 搜索符合许多安全和数据隐私标准,因此可以在大多数行业中使用。

若要保护对服务的访问,可以使用 Azure 基于角色的访问控制 (RBAC) 或使用 API 密钥进行连接。

建议使用 Azure RBAC,因为它使用与 Microsoft Entra ID 集成的 Azure 角色。 使用 Azure 角色时,还可以使用无密码身份验证方法,例如 Azure 资源的托管标识

API 密钥包括管理密钥,可为所有内容操作提供完全访问权限;还有一些查询密钥,提供对搜索索引的文档集合的只读访问权限。 应将不需要更新索引的应用程序设置为使用查询键而不是管理密钥,尤其是当最终用户设备(例如,通过 Web 浏览器中运行的脚本执行)执行搜索时。

还可以通过专用终结点公开 AI 搜索服务,来确保对 AI 搜索服务的安全访问。

搜索相关性

电子商务应用程序是否成功在很大程度上取决于提供给客户的搜索结果的相关性。 根据用户调查精心优化搜索服务以提供最佳结果,或依赖于搜索流量分析来了解客户的搜索模式,可以基于数据做出决策。

优化搜索服务的典型方法包括:

  • 根据与查询匹配的字段、数据的新旧程度、与用户之间的地理距离等条件,使用计分概要文件来影响搜索结果的相关性。
  • 借助使用高级自然语言处理堆栈的 Microsoft 语言分析器来更好地解释查询。
  • 使用自定义分析器来确保正确找到产品,尤其是要根据产品品牌和型号等信息执行非语言搜索时。

成本优化

成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述

为方便用户了解运行本方案的成本,成本计算器中预配置了上述所有服务。 若要了解自己的特定用例的定价变化情况,请按预期用法更改相应的变量。

根据期望处理的流量,考虑以下示例成本概况:

  • 小型:本配置文件使用单个 Standard S1 Web 应用来托管网站,并使用 Azure AI 机器人服务的免费层、单个 Basic 搜索服务和 Standard S2 SQL 数据库。
  • 中型:本配置文件将 Web 应用扩展为 Standard S3 层的两个实例,将搜索服务升级到 Standard S1 层,并使用一个 Standard S6 SQL 数据库。
  • 大型:本配置文件使用 Premium P2V2 Web 应用的四个实例,将 Azure AI 机器人服务升级到 Standard S1 层(高级通道中包含 1,000,000 条消息),使用 2 个单位的 Standard S3 搜索服务和一个 Premium P6 SQL 数据库。

部署此方案

若要部署此方案的版本,可以按照此分步教程执行操作,其中提供了运行作业搜索网站的 .NET 示例应用程序。 该教程演示了到目前为止讨论的大部分 AI 搜索功能。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤

若要了解有关 AI 搜索的详细信息,请访问 documentation center 或查阅示例

若要详细了解其他 Azure 组件,请参阅以下资源: