2011-08-23 84 views
0

我已经使用Visual C++ 2008 启用FTS4在“sqlite3.c”文件如下如何启用全文搜索中的sqlite3在Windows

#ifndef SQLITE_ENABLE_FTS3 
#define SQLITE_ENABLE_FTS3 
#define SQLITE_ENABLE_FTS4 
#define SQLITE_ENABLE_FTS3_PARENTHESIS 
#endif 

调试版本工作正常编译在Windows 7上的SQLite但是,试图创建一个表

CREATE VIRTUAL TABLE DOCS USING FTS3(DOC_NAME, DOC) 

这是怎么回事时,发布版本失败,错误 “没有这样的模块FTS3”?

+0

你释放和开发配置probaly不同。 – Konrads

回答

0

http://www.sqlite.org/fts3.html

部分2.编译并启用FTS3和FTS4

如果使用融合autoconf的基础构建系统,设置CPPFLAGS环境变量在运行“配置”脚本的时候,是一个简单的方法来设置这些宏。例如,下面的命令:

CPPFLAGS="-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS" ./configure <configure options>

那里通常传递到配置脚本这些选项,如果有的话。

由于FTS3和FTS4是虚拟表,SQLITE_ENABLE_FTS3编译时选项与SQLITE_OMIT_VIRTUALTABLE选项不兼容。

如果SQLite的内部版本不包含FTS模块,则任何尝试准备SQL语句以创建FTS3或FTS4表格或以任何方式删除或访问现有FTS表格都将失败。返回的错误消息将类似于“no such module:ftsN”(其中N是3或4)。

如果ICU库的C版本可用,那么也可以使用定义的SQLITE_ENABLE_ICU预处理器宏编译FTS。使用该宏进行编译可以使用ICU库的FTS标记器使用指定语言和区域设置的约定将文档分割为词(词)。

-DSQLITE_ENABLE_ICU

+0

这正是我所做的。我已经多次阅读了该部分,但仍然不知道为什么我会收到错误 – chandra