未知的Tokenizer:sqlite3请求中的icu

时间:2011-08-09 21:17:48

标签: iphone sqlite fts3

请帮我解决一个问题。我的sqlite数据库中有一个虚拟表:

`CREATE VIRTUAL TABLE tablename USING fts4(column1, column2, tokenize=icu ua_UA)`

当我尝试对此表进行SQL查询时,如

const char *sql = "SELECT column2 FROM tablename WHERE tablename.column1 MATCH ?";
sqlite3_bind_text(statement, 1, [matchString UTF8String], -1, SQLITE_TRANSIENT);

我从数据库中收到下​​一个错误:错误:'unknown tokenizer:icu'。 我已经下载了sqlite的源代码,在xCode4的项目中添加了sqlite.c,并将#define SQLITE_ENABLE_FTS4添加到了sqlite.c文件中。但问题仍然存在。 我想在模拟器中做这件事,可能是原因吗?

请帮帮我。如何使用xCode 4在iPhone上处理FTS4?我应该使用一些古老的魔法? :)

玩得开心!

2 个答案:

答案 0 :(得分:2)

您还需要使用SQLITE_ENABLE_ICU #defined重新编译sqlite库本身。

仅仅在Xcode中添加源文件和选项是不够的,因为不会重新创建sqlite库。

请参阅ICU文档中的Tokenizers

答案 1 :(得分:0)

我对这个功能不太熟悉,但我知道它是sqlite的扩展,http://www.sqlite.org/cvstrac/fileview?f=sqlite/ext/icu/README.txt - 听起来好像没有安装在这里。 HTH