如何在SQLite全文搜索中排除搜索词?

时间:2015-07-21 16:09:23

标签: sqlite full-text-search

我正在使用DB Browser for SQLite。 SQLite的fts3 says“FTS的文档主要用于支持布尔全文查询”。我使用fts4构建了一个虚拟表,并成功执行了一些WHERE ... MATCH查询。但是以下尝试会给出错误:

SELECT id FROM histsearch WHERE id MATCH ("-1456" IN BOOLEAN MODE);
SELECT id FROM histsearch WHERE NOT EXIST id MATCH ("1457");

数据库浏览器或SQLite中存在问题吗?我怎样才能编写这个查询以便它可以工作?

1 个答案:

答案 0 :(得分:1)

SQLite的全文服务(fts3)默认情况下基本上提供布尔模式,不需要搜索修饰符。数据库浏览器使用fts的standard query syntax,因此不支持NOT。要排除术语,请执行类似

的操作
SELECT * FROM indexed WHERE indexed MATCH 'sqlite -database';

修改:但是,您不能在全文搜索中排除搜索字词:

  

FTS查询可能不完全包含附加了一元“ - ”运算符的术语或术语前缀查询。

你必须使用NOT LIKE。