TL;DR:
- DX1 uses Manticore Search for customer and parts search with a fast typeahead UX
- Chosen for open-source licensing and speed
- Deployed on Azure VMs running Ubuntu, aligned with DX1’s existing Azure footprint
- Handles 20M+ parts; best typeahead performance requires indexes in memory
- Scales by upgrading VM memory or adding nodes to a Manticore cluster
- Day-to-day operations are low touch and low maintenance
背景
本文基于 DX1 的 Damir Tresnjo 的直接输入。它描述了 DX1 当前如何在 Microsoft Azure 上运行 Manticore Search 的生产环境,重点说明了他们为何选择 Manticore、如何部署以及他们在性能和扩展方面的经验教训。
用一段话介绍 DX1
DX1 将 Manticore Search 用作面向客户和零件目录的快速搜索层,该目录已超过 2000 万条记录。设置非常简单:Manticore 与其余 Azure 基础设施一起运行在基于 Ubuntu 的 Azure 虚拟机上,提供响应迅速的联想搜索,同时在操作上保持“低维护”。随着数据和流量的增长,他们通过升级虚拟机规格或添加更多节点以简单的方式进行扩展。
用户真正喜欢的搜索体验
DX1 使用 Manticore Search 来实现客户和零件数据的搜索。联想搜索是体验的核心部分,根据 Damir 的说法,这是用户最赞赏的功能之一。
“我们用它来搜索客户和零件数据,我们有一个客户非常喜爱的联想搜索功能。”
这是一个实际的、面向用户的用例,毫秒级的响应时间至关重要,这也影响了基础设施和操作选择。
如果你正在探索 Manticore 的自动补全功能,根据数据和用户体验需求,有多种实现方式。如需深入了解,请参阅我们关于模糊搜索和自动补全的概述: 新的模糊搜索和自动补全 。
为何 DX1 选择 Manticore Search
选择使用 Manticore Search 的决定非常直接:它是开源且快速的。
“开源且非常快速。”
这种组合使它成为 DX1 搜索工作负载和成本预期的良好选择,同时保持了对精简团队友好的技术栈。
在 Azure 虚拟机上的部署
DX1 所有基础设施均运行在 Azure 上,因此在 Azure 上部署 Manticore 是自然的选择。团队使用 Ubuntu 在 Azure 虚拟机上运行 Manticore Search。
“我们所有内容都在 Azure 上运行,因此我们也在那里部署了 Manticore。”
不需要 Azure 特有的昂贵托管服务;虚拟机提供了他们所需的灵活性,同时与其余环境保持一致。
性能、内存和扩展
Manticore 对于 DX1 来说即使在大规模下也保持了快速和稳定。他们的生产数据集包含超过 2000 万零件。
“它运行得非常快,我们搜索超过 2000 万零件。”
一个实际的考虑因素是内存。联想搜索性能受益于索引在内存中,这意味着随着索引增长,虚拟机内存可能需要同步增长。
“为了联想搜索性能,数据库需要在内存中。一旦索引超出可用内存,就需要升级虚拟机内存。”
这创造了一个清晰的扩展路径:在现有虚拟机上增加内存或向集群添加更多节点。
“我们可以扩展每个虚拟机,或者向 Manticore 集群添加更多虚拟机。”
日常操作
在操作上,DX1 将 Manticore 描述为低维护和低干预。
“低维护、低干预,大多数时候它只是运行着。”
没有涉及 Azure 的特殊功能;设置是刻意简单的,专注于虚拟机和可预测的操作。
推荐
DX1 会向其他团队推荐 Manticore Search,作为快速且成本效益高的搜索引擎。
“是的,我会向任何寻找快速、可靠且成本效益高的搜索引擎的人推荐 Manticore。”
对于 DX1 来说,速度、开源灵活性以及在 Azure 上基于虚拟机的简单部署,已成为大规模搜索的可靠基础。
结论
DX1 的故事适合那些希望拥有快速、可靠搜索引擎的团队,而无需将搜索基础设施本身变成一个项目:在简单的 Linux 虚拟机上运行 Manticore,保持操作简单,并可预测地扩展。特别是对于低延迟的联想搜索,通常需要规划足够的内存余量,因此扩展通常从内存(向上扩展)开始,随后随着数据和流量增长扩展到添加节点(向外扩展)。
与我们讨论迁移到 Manticore
如果你正在考虑迁移到 Manticore Search 并希望进行快速的架构审查(例如基于虚拟机的 Azure 部署), 请与我们联系 。分享一些关于你的数据集大小、查询模式和延迟目标的信息,我们将帮助你验证一种方法并规划下一步。
