Fetch the repository succeeded.
LIB-ZC 内嵌多关键字搜索模块
文件格式和实现, 参考: https://gitee.com/linuxmail/lib-zc/blob/master/src/search/msearch.c
struct zmsearch_t {
/* 隐藏细节, 不必深究 */
};
zmsearch_t *ms = zmsearch_create();
zmsearch_add_token(ms, "abc", 3);
zmsearch_add_token(ms, "someKey", -1);
zmsearch_add_token_from_pathname(ms, "keyword_list.txt");
zmsearch_add_token_from_pathname(ms, "keyword_list2.txt");
zmsearch_add_token(ms, "anotherKKK", -1);
zmsearch_add_over(ms);
const char *str = "ABcXYZanotherKKKFSFSF";
const char *result;
int len;
int ok = zmsearch_match(ms, "ABcXYZanotherKKKFSFSF", -1, &result, &len);
/* 应该是匹配成功了 */
/* *result = str + 6; */
/* len = strlen(str); */
zmsearch_free(ms);
zmsearch_t *ms = zmsearch_create_from_pathname("some_msearch_mmap_file.db");
/* (同搜索1) */
zmsearch_free(ms);
zmsearch_t *ms = zmsearch_create();
zmsearch_add_token(ms, "abc", 3);
zmsearch_add_token(ms, "someKey", -1);
zmsearch_add_token_from_pathname(ms, "keyword_list.txt");
zmsearch_add_token_from_pathname(ms, "keyword_list2.txt");
zmsearch_add_token(ms, "anotherKKK", -1);
zmsearch_add_over(ms);
void *data = zmsearch_get_compiled_data(ms);
int dlen = zmsearch_get_compiled_data(ms);
fwrite(data, 1, dlen, some_fp);
zmsearch_build(ms, "some_new_keyword.db");
zmsearch_free(ms);
Sign in for post a comment
Comment ( 0 )