在当今互联网时代,搜索引擎成为了获取信息的重要工具。然而,如果每个应用开发者都需要自行开发搜索引擎,这无疑将是一项耗时且困难的任务。为了解决这一问题,微软推出了Azure Search服务。Azure Search是Azure云平台的一部分,它是一个托管服务,运行在公有云上,允许对上传到微软服务器的数据进行索引和查询。使用Azure Search的应用可以运行在Azure、本地或另一个云平台上。无论应用在哪里,Azure Search都能提供索引,以便搜索数据。但需要注意的是,Azure Search主要是面向开发者而非最终用户。
Azure Search在设计时考虑了多种使用场景,包括:
在电子商务应用中,用户期望能够通过搜索功能找到他们想要的商品。同时,商家也希望能够控制搜索结果,尤其是结果的返回顺序。这种对结果的控制可以用来鼓励消费者购买特定的产品。此外,拥有自己的搜索服务意味着企业可以了解用户在搜索什么,并利用这些信息来调整提供的产品范围。
对于用户生成内容的网站,人们同样期望能够搜索网站,但组织可能也希望能够控制返回的结果。例如,利用这种对结果的控制来引导消费者购买网站赞助商提供的商品、产品或服务。
许多商业应用将从搜索选项中受益,尤其是那些具有大型或复杂用户界面的应用,以及首次引入的应用。
Azure Search的基础设施和可用性由微软管理,因此无需进行基础设施管理。可以通过在两个维度上进行扩展来定制服务,以处理更多的文档存储或更高的查询负载,或两者兼有。功能通过REST API或.NET SDK暴露。由于Azure Search是一个完全托管的服务,无需处理索引损坏、服务可用性、扩展或服务更新等问题。
Azure门户(如上所示)提供了管理和内容管理支持以及工具,包括用于配置索引的导入数据向导和用于测试查询和完善评分配置文件的搜索资源管理器。还可以收集和分析搜索流量分析。其他功能包括地理搜索、语言分析、数据集成、认知搜索和用户体验。用户体验功能如下:
要开始使用Azure Search,需要创建服务的实例。这包括指定实例应在哪个Azure数据中心运行以及其容量应为多少。然后,应用程序可以通过RESTful接口开始使用服务。
首先,需要创建索引。这是通过导入数据向导(如上例所示)完成的。索引类似于数据库表,用于保存数据并接受搜索查询。定义索引模式以反映希望搜索的文档的结构。接下来,将数据加载到索引中。可以从外部源检索数据(拉取模型)。这个过程由索引器支持,索引器可以自动化和简化数据摄取的各个方面。索引器适用于Azure Cosmos DB、Azure SQL数据库、Azure Blob存储和托管在Azure VM中的SQL Server。或者,可以使用推送模型,将数据从几乎任何数据集推送到索引中,使用JSON格式。这种模型通过SDK或REST API提供。随着数据的变化,索引将需要定期更新,但这可以按需或按计划刷新进行。
当索引填充后,应用程序可以使用简单的HTTP请求通过REST API或.NET SDK进行搜索,并显示结果。使用内置的搜索资源管理器查询页面测试查询字符串。关键查询功能包括过滤器、命中高亮、模糊搜索和地理搜索。