用Atlas搜索取代Elasticsearch和Solr的5个步骤
一家全球汽车制造商、跨国媒体和娱乐公司以及一家挑战者银行有什么共同点?他们都从Elasticsearch转向MongoDB Atlas Search,以简化他们的技术栈,并更快地推出应用搜索。
但他们解决的是什么问题,他们是如何迁移的呢?我们有一个新的5步指南,带你了解他们为什么转换,以及他们是如何做到的。
对应用搜索的需求
在谷歌、亚马逊和Netflix等网站的搜索栏中输入几乎任何东西,你就会立即看到相关的结果。无论你是打错了字还是输入了部分搜索词,搜索引擎都会找出你要找的东西。返回的结果按照相关性进行排序,并通过高亮、过滤和计数等功能方便地进行导航。
现在,每个人都希望在他们使用的每一个应用程序中都有这些快速和直观的搜索体验,无论是在家里还是在工作中。然而,创造这些体验是困难的,因为负担落在了必须建立和运行底层系统的开发人员和运营团队身上。
构建应用搜索的痛苦
MongoDB一直专注于加速和简化开发者如何为任何类别的应用程序构建数据。从我们最早的MongoDB版本开始,我们就看到开发者需要将存储在数据库中的应用数据暴露给搜索和信息发现。
对于简单的用例--只需要在一个字段中匹配文本就足够了--开发人员能够使用MongoDB数据库中内置的基本文本搜索操作符和索引。然而,这些都缺乏专门的搜索引擎所提供的更为复杂的速度和相关性调整功能,通常是建立在Apache Lucene之上的。
因此,许多开发者最终将外部搜索引擎,如Elasticsearch或Apache Solr安装到他们的数据库中。Elasticsearch和Solr曾经(现在也是)很受欢迎,也很成熟。然而,如图1所示,它们给应用堆栈引入了大量的复杂性,降低了开发者的速度,同时增加了风险、复杂性和成本。

图1:在数据库上安装搜索引擎的痛苦
通过与MongoDB社区的合作,我们的产品设计师和工程师想出了一些方法,在不影响他们所需的关键功能的情况下,让开发人员更容易地建立应用搜索。结果就是MongoDB Atlas Search。
什么是Atlas搜索,为什么要改用它?
Atlas Search将一个完全管理的Apache Lucene搜索索引直接嵌入到数据库旁边,并在它们之间自动同步数据。
通过将数据库、搜索引擎和同步管道整合到一个单一的、完全管理的平台,你可以将三个系统压缩成一个,简化你的技术栈。工程团队和应用程序所有者报告说,在采用Atlas Search后,开发速度提高了30%至50%。这是因为他们可以。
-
消除了同步税:数据会自动、动态地从Atlas数据库同步到Atlas搜索索引。他们不必建立和管理自己的同步机制,不必编写自定义转换逻辑,也不必随着数据库模式的演变而重新设置搜索索引。他们摆脱了通常因手动恢复同步失败而损失的10%的工程周期,而是将这些时间投入到为他们的用户进行创新。(1)
-
更快地推出新功能:他们在数据库和搜索操作中使用单一、统一的API,简化了查询开发。不再需要在多种查询语言之间进行上下文切换,而且有了单一的驱动程序,构建的依赖性得到了简化,因此他们的发布速度更快。他们可以用交互式工具测试查询和预览结果,在直接部署到应用程序代码之前对性能和评分进行微调。
-
消除操作上的繁琐:完全管理的Atlas平台可以自动配置、复制、修补、升级、扩展、安全和灾难恢复,同时为数据库和搜索提供深入的性能可视性。通过使用单一的系统,他们避免了需要设计、测试、安全、监控和维护的系统组件数量的指数级增长。

图2:在MongoDB Atlas中集成数据库、同步和搜索,极大地简化了架构。
转换到Atlas搜索的5个步骤
Atlas Search所提供的好处使得所有行业领域和地域的工程团队都从螺栓式搜索引擎转换到Atlas Search。通过与这些团队合作获得的经验,我们整理出了一个可重复的5步方法,以取代Elasticsearch和Solr。
本指南将指导你如何:
-
鉴定Atlas搜索的目标工作负载。
-
将你的索引迁移到Atlas Search。
-
将你的查询迁移到Atlas搜索。
-
验证和调整Atlas Search的查询和索引的相关性。
-
确定Atlas Search基础设施的规模和部署。

图3:用Atlas Search取代Elasticsearch和Solr的5步方法
该指南以已经完成转换的客户实例作为结束,并提供了如何开始使用Atlas Search的指导。