wwsearch 全文检索引擎
地址: https://github.com/Tencent/wwsearch/blob/master/doc/wwsearch-implement.md 背景 企业微信作为典型企业服务系统,其众多企业级应用都需要全文检索能力,包括员工通讯录、企业邮箱、审批、汇报、企 业CRM、企业素材、互联圈子等。下图是一个典型的邮件检索场景。 由于过去几年业务发展迅速,后台检索架构面临挑战: 1. 系统在亿级用户,xxx万企业下,如何高效+实时地检索个人企业内数据和所在企业全局数据。 2. 业务模型众多,如何满足检索条件/功能多样化需求。 3. 数据量庞大,检索文本几十TB,如何节约成本。 业界有被广泛使用的开源全文检索引擎,比如:lucene、sphinx等。它们适用于站内检索的场景。而在海量用户、大规模数据量的实时检索场景下,存在明显缺点: 1. 无法支持细粒度切分索引,只能对全局数据构建索引 ,检索过程需要过滤冗余数据。 2. 不支持实时检索,有几十秒~分钟级延迟。 3. 实际部署机型要求高,需要大内存机型才能支撑T级别的数据存储。 针对已有方案的不足,并结合企业级应用场景,我们重新设计和实现一套通用的全文检索引擎wwsearch。 自研全文检索引擎 wwsearch为海量用户下的全文快速检索而设计,底层支持可插拔的lsm tree存储引擎,具备支持按用户的亿级分表、低延时、高效更新