在sqlite我中:
- 执行一个
create virtual MyTable (tokenize =icu ,id text,subject text,abstract text)
- 然后就成功了
insert info MyTable (id,subject,abstract) values (?,?,?)
所以我有这样一行:今天天气不错fmowomrogmeog,wfomgomrg,我是谁erz
当我表演时select id from MyTable where MyTable match ‘z*’
它不返回任何内容,每当我搜索单个字母时,它都不会返回任何内容。但是,如果我搜索“m”或“天气”或“天”,它就会起作用。
我知道 sqlite 仅支持前缀,所以我使用 ICU。我犯错了吗?
注意我查看了foxmail的源代码,在我看来我可以搜索',''f'等等。
Try 高海峰的角色分词器。它可以搜索前缀、后缀以及两者之间的任何内容。它也支持中文。我认为您找不到任何其他支持任意子字符串搜索的分词器。
顺便说一句,这是一种无耻的自我推销。
如果你想打开一个由以下编码的数据库character
Objective-C 中的分词器,执行以下操作:
#import <FMDB/FMDatabase.h>
#import "character_tokenizer.h"
FMDatabase* database = [[FMDatabase alloc] initWithPath:@"my_database.db"];
if ([database open]) {
// add FTS support
const sqlite3_tokenizer_module *ptr;
get_character_tokenizer_module(&ptr);
registerTokenizer(database.sqliteHandle, "character", ptr);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)