LIB-ZC, 一个跨平台(Linux)平台通用C/C++扩展库, 多关键字搜索模块
在处理大规模数据时,多关键字匹配是一项关键技术。
LIB-ZC 库内嵌的多关键字搜索模块,凭借独特的设计与高效的实现,能够轻松应对十万百万量级的关键字匹配,以及大量 URL 匹配等场景。
模块核心实现与文件格式
- 实现原理和细节 https://gitee.com/linuxmail/lib-zc/tree/master/cpp_src/cdb
- 采用了 mmap 机制,不会立即加载文件到内存, 也无需重建索引等工作。
- 且实现多进程共享数据。
核心类解析
zcc::msearch_builder:用于构建关键字索引数据,通过添加关键字、从文件读取关键字等操作,最终生成可用于搜索的编译后数据。
zcc::msearch_reader:线程安全的搜索器,能够从文件或数据 Buffer 加载编译后的数据,并执行关键字匹配操作。
zcc::msearch_walker:用于遍历已加载的关键字数据,方便用户获取所有存储的关键字信息。
生成关键字索引
zcc::msearch_builder builder;
// 添加单个关键字
builder.add_token("12345", 5);
// 从文件中添加关键字
builder.add_token_from_file("/etc/postfix/main.cf");
// 再次添加关键字
builder.add_token("abc", 3);
// 标记关键字添加结束
builder.add_over();
<

最低0.47元/天 解锁文章
1059

被折叠的 条评论
为什么被折叠?



