内容提要
Uber工程团队将搜索基础设施从Apache Lucene 8.0升级到9.5,提升了搜索能力和效率。新架构包含服务层和摄取层,支持实时更新和离线处理。升级后,搜索速度提高30%,CPU使用降低,基础设施成本减少。
关键要点
-
Uber工程团队将搜索基础设施从Apache Lucene 8.0升级到9.5,提升了搜索能力和效率。
-
新架构包含服务层和摄取层,支持实时更新和离线处理。
-
服务层处理用户查询并从Lucene索引中检索信息,包含路由服务和搜索服务。
-
摄取层在数据变化时更新Lucene索引,使用Apache Flink处理实时更新。
-
离线处理使用Apache Spark作业,处理大规模索引创建和重建。
-
升级过程持续约六个月,涉及代码审查、验证和分阶段推出。
-
Apache Lucene支持多种搜索需求,包括结构化和全文搜索、拼写纠正等。
-
升级后搜索速度提高30%,CPU使用降低,基础设施成本减少。
-
此升级对Uber的基础设施产生积极影响,减少了所需机器数量。
-
保持核心技术的最新状态对大规模技术驱动的运营至关重要。
延伸解读
搜索基础设施的架构优化
Uber此次升级不仅提升了搜索速度,还优化了搜索基础设施的架构。新架构分为服务层和摄取层,服务层负责处理用户查询,而摄取层则确保数据更新及时。这种分层设计使得系统在处理实时和离线数据时更加高效,适应了Uber多样化的搜索需求。
升级过程的挑战与策略
此次升级历时六个月,涉及对超过400个文件的修改,团队采取了分阶段推出的策略,以降低风险。通过先在低优先级的内部用例中部署,逐步扩展到更高优先级的应用,确保了系统的稳定性和兼容性。这种谨慎的升级方式值得其他企业借鉴。
降低成本与提升效率的双重收益
升级至Apache Lucene 9.5后,Uber的搜索速度提高了30%,同时CPU使用率降低。这不仅提升了用户体验,还显著减少了基础设施成本,允许Uber在服务多个客户时减少所需的机器数量。这一变化对技术驱动的企业尤为重要,能够在提升服务质量的同时控制运营成本。
延伸问答
Uber为什么要将搜索基础设施升级到Apache Lucene 9.5?
Uber升级到Apache Lucene 9.5是为了提升搜索能力、性能和效率。
新架构的服务层和摄取层分别负责什么?
服务层处理用户查询并从Lucene索引中检索信息,摄取层在数据变化时更新Lucene索引。
升级后的搜索速度提高了多少?
升级后,搜索速度提高了30%。
Uber在升级过程中采取了哪些步骤?
升级过程包括代码审查、验证和分阶段推出,持续约六个月。
Apache Lucene支持哪些搜索需求?
Apache Lucene支持结构化和全文搜索、拼写纠正、查询建议等多种搜索需求。
升级对Uber的基础设施有什么影响?
升级降低了CPU使用,减少了基础设施成本,并允许Uber减少所需机器数量。