2011-02-11 48 views
2

我爲sqlite3.6.2編譯了fts3模塊。如何構建虛擬表並在某些現有表的字段上執行搜索(如內容:tweets中的字符串)? ft3是否支持模糊搜索? (我查了文檔,但仍然非常困惑......)。如何使用sqlite執行全文搜索fts3

回答

2

你可以做一些簡單的事情來搜索2個字段。你必須使用工會。

string createSql = "CREATE VIRTUAL TABLE TweetFts USING FTS3(TweetId, Title, Description)"; 

string insertSql = "INSERT INTO TweetFts (TweetId, Title, Description) 
    SELECT TweetId, Title, Description FROM Tweet"; 

string sql = @"select TweetId from TweetFts where Title match '" + allWords + "'"; 
sql += " union "; 
sql += @"select TweetId from TweetFts where Description match '" + allWords + "'"; 
sql += " union "; 
sql += @"select TweetId from TweetFts where Title match '""" + exactMatch + @"""'"; 
sql += " union "; 
sql += @"select TweetId from TweetFts where Description match '""" + exactMatch + @"""'"; 

運行該查詢,你有一個匹配的鳴叫列表。

除了使用*的前綴搜索,我沒有看到任何模糊的內容。

有一個soundex函數。

+0

謝謝。這解決了我的問題。 :) – lkahtz 2011-02-12 03:09:12