首页 文章

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

提问于
浏览
0

我正在使用DB Browser for SQLite . SQLite的文档fts3 says "FTS is primarily designed to support Boolean full-text queries" . 我使用fts4构建了一个虚拟表,并成功执行了一些WHERE ... MATCH查询 . 但是以下尝试会给出错误:

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

是DB Browser还是SQLite中的问题?我怎么能写这个查询所以它会工作?

1 回答

  • 1

    SQLite 's full text service (fts3) basically offers Boolean Mode by default, no search modifier needed. DB Browser uses fts' s standard query syntax,因此不支持NOT . 要排除某个术语,请执行类似的操作

    SELECT * FROM indexed WHERE indexed MATCH 'sqlite -database';
    

    编辑:但是,您不仅可以在全文搜索中排除搜索字词:

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

    你必须使用NOT LIKE .

相关问题