在本文中,我们将学习如何对Azure SQL数据库中托管的数据启用多语言搜索。
简介
Azure SQL数据库是Azure云平台上最受欢迎的关系型数据库之一。本地化要求数据以英语以外的多种语言存储。这导致了各种语言的数据的出现。虽然这在数据存储或数据管理方面不是那么复杂,因为它和其他数据一样,只是在数据整理方面有区别,需要更大的字符集。但是在数据消费方面,它可能会变得复杂,因为用户可能想用他们选择的语言来查询数据。虽然SQL或任何其他查询语言可能是常规的英语语言,但为了使用户能够找到他们选择的数据,搜索可能是使用多语言消费数据的最方便的模式之一。本文将帮助你了解Azure上的SQL数据库的多语言支持。
向Azure SQL数据库中托管的数据添加搜索
我们首先需要的是一个具有管理权限的Azure账户来操作Azure搜索服务。如果已经有一个Azure SQL数据库实例,或者计划创建一个实例来托管该数据库中的样本数据,那么我们也需要有访问SQL数据库服务的权限。现在,我们假设至少已经有了Azure账户。然后导航到Azure搜索服务的仪表板页面,用默认配置创建一个新的搜索实例。一旦实例创建完毕,它将如下图所示。
我们打算从一个多语言的Azure SQL数据库中导入数据,然后在其上启用搜索。为此,我们需要创建一个新的实例,并将这些数据填入其中。为了使我们的注意力集中在搜索功能上,并使额外的依赖性降到最低,我们可以使用Azure SQL Search中的样本。要开始在搜索实例中导入数据,点击导入数据按钮,它将调用一个新的向导,如下图所示。这里的第一步是选择一个现有的数据源。我们不选择Azure SQL数据库,而是从支持的数据源类型列表中选择Samples,如下图所示。
在下一步,我们会有两个选项,从可用的样本列表中选择数据源类型。其中一个是Azure SQL数据库,这是一个房地产的样本数据。这个数据集包含了以各种语言存储数据的属性,这将非常符合我们的用例。选择这个数据源并进入下一步。
在下一步中,我们可以在导入过程中选择性地添加认知资源和丰富配置。现在,我们的搜索功能中不需要这些额外的增值能力。所以,我们将跳过这一部分,进入下一步。
在这一步,我们需要提供正在创建的索引的名称,如下所示。正在使用的表的键被自动视为索引的键。建议者名称和搜索模式将被填入默认值,如下所示。下面的部分将列出所有的字段及其数据类型,它们是否可检索、可过滤、可排序、facetable和可搜索。大多数字段预计默认情况下都会选择这些搜索功能。
向下滚动,你将能够找到每种语言的描述字段。这些字段持有不同语言的记录描述。这里要观察的有趣部分是与之相关的分析器。你会发现,有英语数据的描述字段,它有英语分析器,而不同语言的描述字段,如法语或意大利语,有一个相应的分析器与之相连。这使得搜索引擎和索引能够根据语言环境来解析数据。在根据需要配置了搜索上下文中的字段及其设置后,我们可以进入下一步。
在这一步,我们需要提供索引器的名称、时间表和一个可选的描述。由于数据的来源是在Azure SQL数据库中托管的样本,我们不需要安排刷新频率,因为这些数据不会改变。这样,搜索索引的配置就完成了,我们可以点击提交按钮,开始创建搜索索引。
一旦索引被创建,我们可以监控索引的进展,如下图所示。我们可以从索引详细页面跟踪执行历史、索引定义以及其他相关设置。
一旦索引被创建,执行历史将显示它已成功完成,并显示持续时间、记录数和任何错误,如下所示。这意味着索引已成功创建,并已准备好进行查询。
导航到搜索资源管理器界面,在查询字符串中添加查询参数,如下图所示。这将导致从索引中返回前十条记录,其中包括我们配置的作为搜索结果一部分返回的所有属性。
我们的目的是要根据不同的语言进行搜索。如果我们输入一个不同语言的查询字符串,它仍然会返回搜索结果。通常情况下,任何搜索引擎或功能都会与作为搜索查询的一部分提供的模式或准确文本相匹配,并返回结果。人们应该考虑与非英语语言的原文相比,使用不同的时态、短语和相关的关键词,根据分析器和搜索方法的配置,它仍然会返回结果。
这样,我们就可以通过在Azure Search实例的搜索索引中导入Azure SQL数据库的数据来实现多语言搜索。
总结
在这篇文章中,我们学习了如何使用Azure Search中可用的样本数据库从Azure SQL数据库中获取数据,并将这些数据填充到搜索索引中。我们还学习了如何配置与搜索索引有关的不同设置,不同的语言分析器,可以与不同语言的字段托管数据相关联,然后使用搜索界面进行搜索。