HorizonDB, a geocoding engine in Rust that replaces Elasticsearch
9 months ago
- #geospatial
- #database
- #Rust
- Radar每天处理超过10亿次API调用,为全球数亿台设备提供服务。
- HorizonDB是一个用Rust编写的地理空间数据库,旨在将多个定位服务整合为单一的高性能二进制程序。
- 在HorizonDB之前,地理编码功能分散在Elasticsearch、微服务和MongoDB中,导致运维和扩展困难。
- HorizonDB采用RocksDB、S2、Tantivy、FSTs、LightGBM和FastText等技术提升性能与效率。
- 选择Rust因其安全性、性能及并发特性,是系统编程的理想语言。
- RocksDB提供微秒级响应,作为高效的主记录存储层。
- S2实现高效空间索引,将O(n)的多边形点查询优化为常数时间操作。
- FSTs通过极低内存占用实现字符串压缩和前缀查询,缓存数百万条'高频路径'。
- Tantivy作为进程内倒排索引,因其简洁性和性能优势被选用,替代Elasticsearch等外部服务。
- FastText将单词转化为数值向量,有效处理拼写错误和生僻词,提升搜索精度。
- LightGBM模型分类查询意图,通过结构化查询优化搜索性能与准确率。
- Apache Spark以近线性扩展能力快速处理数亿数据点。
- HorizonDB显著降低了Radar地理定位服务的成本,同时提升性能和可扩展性。
- Radar正在招募工程师,欢迎访问招聘页面了解更多信息。