我已经为sqlite3.6.2编译了fts3模块。如何构建虚拟表并在现有表的某些字段上执行搜索(如内容:推文中的字符串)? ft3支持模糊搜索吗? (我检查了文档,但仍然非常困惑......)。
答案 0 :(得分: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功能。