我正在使用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中存在问题吗?我怎样才能编写这个查询以便它可以工作?
答案 0 :(得分:1)
SQLite的全文服务(fts3)默认情况下基本上提供布尔模式,不需要搜索修饰符。数据库浏览器使用fts的standard query syntax,因此不支持NOT。要排除术语,请执行类似
的操作SELECT * FROM indexed WHERE indexed MATCH 'sqlite -database';
修改:但是,您不能仅在全文搜索中排除搜索字词:
FTS查询可能不完全包含附加了一元“ - ”运算符的术语或术语前缀查询。
你必须使用NOT LIKE。