同步操作将从 腾讯开源/wwsearch 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
wwsearch
简介wwsearch
是企业微信后台自研的全文检索引擎。它为海量用户下的全文快速检索而设计,底层支持可插拔的lsm tree
存储引擎。目前覆盖企业微信所有在线检索场景:企业员工通讯录、审批、日报、周报、汇报、企业素材检索,也包括企业邮箱的全文邮件检索。 最大业务场景有300+亿条记录,索引词项万亿+,存储容量几十TB,支撑实时在线用户检索。
具体使用例子参考example/example.cpp
。 这里简单对接口字段进行说明。
主要涉及6个接口,分别是:
下面以用户常用的AddOrUpdateDocuments
为例说明用法。
// wwsearch/index_writer.h
bool AddOrUpdateDocuments(const TableID &table,
std::vector<DocumentUpdater *> &documents,
std::string *store_buffer = nullptr,
SearchTracer *tracer = nullptr);
// wwsearch/document.h
class DocumentUpdater {
...
Document new_document_;
...
};
class Document {
...
std::vector<IndexField *> fields_;
DocumentID document_id_;
...
};
// wwsearch/index_field.h
class IndexField {
...
FieldID field_id_;
IndexFieldFlag field_flag_;
kIndexFieldType field_type_;
uint64_t numeric_value_;
std::string string_value_;
...
}
用户使用涉及主要字段说明:
主要涉及接口:
// wwsearch/searcher.h
SearchStatus DoQuery(const TableID &table, Query &query, size_t top,
std::vector<Filter *> *filter,
std::vector<SortCondition *> *sorter,
std::list<DocumentID> &docs,
uint32_t min_match_filter_num = 0)
用户使用涉及主要字段说明:
依赖模块为:
# wwsearch/deps/
protobuf-2.4.1
snappy-1.0.4
rocksdb-v5.16.6
tokenizer-mmseg
仓库中已提前编译生成依赖库,您也可以根据编译环境重新编译依赖的第三方模块。
需要使用支持c++ 11的编译环境构建
mkdir build
cd build
cmake ..
make -j32
cp ../deps/tokenizer/etc/wwsearch_* .
编译完成将可以看到:
接下来可以愉快使用啦,enjoy it!
提交pull request贡献代码前,请参考 Contributing.md 。
wwsearch
基于c++11开发,遵循Google C++ Style Guide代码风格,提交代码前需要使用附带的.clang-format
格式化代码;
使用中遇到问题,可以有以下途径反馈:
wwsearch 开源协议为 Apache License Version 2.0 ,详细的 License 请参考 LICENSE.TXT
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。