SQlite3 fts 否定搜索

标签 sqlite full-text-search negation

您好,感谢您的关注!

我正在搜索包含某些带有全文搜索的字符串的文章,如下所示:

SELECT * FROM Articles_fts WHERE body MATCH 'monkey OR banana OR "hungry gorilla"';

我真正的搜索要长得多(22 个术语),可能不是最聪明的方法,但它正在工作,所以那里没有问题。

我需要帮助...
现在我想返回这个搜索返回的对立面。换句话说,我想要所有不包含猴子、香蕉或“饥饿的 gorilla ”的文章。

首先十分感谢!

最佳答案

只有在 SQLite 使用 enhanced FTS query syntax enabled 编译时才可用。 .

否则,您可以使用 SQL 集合操作来否定结果:

SELECT *
FROM Articles
WHERE id NOT IN (SELECT docid
                 FROM Articles_fts
                 WHERE body MATCH '...')

关于SQlite3 fts 否定搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28743932/

相关文章:

java - 在 SQliteDatabase 中保存图像时出现 OutOfMemoryError

sql-server - 忽略 SQL Server 中全文搜索 (FREETEXTTABLE) 搜索列中的破折号 (-)

c++ - 双 bool 否定运算符

c++ - 在 C++ 中使用 XOR 0xffffffff 或 ~ 翻转位?

sqlite - 如何在 Entity Framework Core 中对事务进行单元测试?

Oracle 相当于 SQLite 的 quote() 函数

android - 在 Android 中存储和搜索大文本数据的最佳方式

postgresql - Postgres 全文搜索 (tsvector/tsquery) 的行为不符合预期

java - 使用 lucene 的荧光笔和完整性的问题。