gpt4 book ai didi

sqlite - Sqlite 3's full text search doesn' 的限制允许 OR 与 MATCHes。解决方法?

转载 作者:行者123 更新时间:2023-12-03 17:54:43 26 4
gpt4 key购买 nike

Sqlite3 的全文搜索工具 - FTS3 - 允许使用 MATCH 运算符进行快速全文搜索:

SELECT ItemId FROM docs WHERE docs.text MATCH 'linux'

但是,它不支持 SQL 查询中存在 MATCH 的任何地方的 OR 运算符(来源: 12 ):
SELECT ItemId FROM docs WHERE docs.text MATCH 'linux' OR column=value
error: unable to use function MATCH in the requested context

(不要与 FTS3 查询本身中的 OR 运算符混淆,即 SELECT ItemId FROM docs WHERE docs.text MATCH 'linux OR unix' 。这很好用。)

有没有办法重写查询以便它工作(即使它有点慢)?

最佳答案

使用临时 View 重写查询将按预期工作:

CREATE TEMP VIEW view1 AS SELECT ItemId FROM docs WHERE docs.text MATCH 'linux' 
SELECT * FROM docs WHERE ItemId IN view1 OR column=value
DROP VIEW view1

如果临时 View 不是“扫描”的,即它不会生成很多行,则速度将与“直接”查询(没有临时 View )的速度相当。

关于sqlite - Sqlite 3's full text search doesn' 的限制允许 OR 与 MATCHes。解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11764357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com