2011-02-11 70 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