【问题标题】:Sqlite FTS3/4 only NOT search仅 Sqlite FTS3/4 不搜索
【发布时间】:2017-05-05 00:37:04
【问题描述】:

如何从 SQLite FTS3 或 FTS4 表中选择除不需要的所有行?

select * from table where table match 'column:NOT phrase'
select * from table where table match 'column:-phrase'
select * from table where table match 'column:* NOT phrase'

没有按预期工作。

【问题讨论】:

  • 您的库是针对标准还是增强型查询语法编译的?
  • 它是来自 NuGet - System.Data.Sqlite Core 的标准库。我认为,它是用标准语法编译的。我可以手动编译,但请告诉我,什么是“增强语法”,哪些增强语法查询对我有帮助?
  • 我没有写那个额外的“c”。阅读fine documentation

标签: sqlite full-text-search fts3 fts4


【解决方案1】:

NOT- 都无法做到这一点,因为否定不能是 FTS 查询中的唯一运算符。

您必须搜索该短语,并使用普通 SQL 从结果中排除这些行:

SELECT ...
FROM MyTable
WHERE ID NOT IN (SELECT docid
                 FROM MyTableFTS
                 WHERE MyTableFTS MATCH 'phrase');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    相关资源
    最近更新 更多