admin管理员组

文章数量:1578025

HA3搜索引擎梳理与分析

一、HA3技术体系梳理

HA3搜索引擎技术体系图

1.1 内核
  • 网络访问存储:通过网络访问盘古系统(集中式存储)实现存储与计算分离,支持独立扩展,降低运维成本,提高稳定性
  • 热数据cache:支持使用mmap(lock/非lock方式)、blockcache对数据进行加载,实现对热数据的memcache
  • 自适应bitmap:支持根据检索热度自动将部分token转换为bitmap倒排
  • 分层存储:对于超内存数据量、高性能检索、有持久化需求场景,通过将数据根据热度分层,进行不同程度的压缩并存放在不同存储介质的方式,平衡检索性能、存储成本等需求
  • 短链优化:将链长较短的倒排链自动转换为kv存储,提高检索性能
  • 检索性能优化:在主键检索时,用hashtable替换二分查找,以可以接受的空间成本换取时间;range索引在建库的时候,把每一个整数按位拆分成多个倒排的term然后建立倒排索引, 每个range索引目录下,包括两个子目录,分别是低4位和高60位的term建立的倒排索引, 查询的时候会合并二者的结果。
  • 数据压缩:针对数据重复等场景进行优化,减少冗余存储
  • 数据分片:通过数据分片的设计,提高离线/实时数据任务的并行度,从而提高数据实时性
  • 持久化:优化数据从内存dump至磁盘的过程中存在的性能问题
  • 动态索引配置:支持动态新增正排、倒排字段,降低运维成本

红色字体为业务需要但artis体系不具备的能力。

1.2 组件
  • 检索过滤:支持交、并、过滤等检索语义
  • 全量/增量更新:支持全量/增量数据的离线全局计算
  • doc截断/回收:在全量/增量任务中,可以根据一定规则,将无效的doc丢弃,也可以根据定制的排序结果,将部分doc截断
  • doc聚合:根据doc中包含的token将doc排序,使建立倒排时

本文标签: 搜索引擎