2011-08-23 87 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