sql - 如何使用 sqlite fts3 执行全文搜索

标签 sql sqlite full-text-search

我已经为 sqlite3.6.2 编译了 fts3 模块。如何构建虚拟表并在现有表的某些字段上执行搜索(如推文中的内容:字符串)? ft3 是否支持模糊搜索? (我检查了文档,但仍然非常困惑......)。

最佳答案

您可以像这样简单地搜索 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函数。

关于sql - 如何使用 sqlite fts3 执行全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4966478/

相关文章:

mysql - WHERE 条件内子查询的总和

mysql - 删除左表上的重复项,同时保留右表上的重复项 SELECT JOIN

android - Android 中短信和联系人的唯一标识符(检查重复)

elasticsearch - 限制 Elastic Search 返回的结果数量

mysql - 在2个以上具有不同数据的表中进行全文搜索

python - python中的SQLite3更新错误

sql - 对于一个成功后可能会变大的小型 Web 项目,什么是好的免费 RDBMS 解决方案?

database - 使用 Cordova/PhoneGap/Ionic 存储数据的方式有哪些?

android - 内部连接两个表并为第一个表中的每个条目从第二个表返回最大值

mysql - 如何使用MySQL更改全文索引最小字长?