【发布时间】:2022-01-25 20:05:10
【问题描述】:
我已关注https://kimsereylam.com/sqlite/2020/03/06/full-text-search-with-sqlite.html 设置SQLite's virtual table extension FTS5 以在external content table 上进行全文搜索。 虽然博客展示了如何设置触发器以保持虚拟 FTS 表随数据更新:
CREATE TABLE user (
id INTEGER PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
email TEXT NOT NULL UNIQUE,
short_description TEXT
)
CREATE VIRTUAL TABLE user_fts USING fts5(
username,
short_description,
email UNINDEXED,
content='user',
content_rowid='id'
)
CREATE TRIGGER user_ai AFTER INSERT ON user
BEGIN
INSERT INTO user_fts (rowid, username, short_description)
VALUES (new.id, new.username, new.short_description);
END;
...
我无法以类似的方式从所有以前的数据中填充 FTS 表。 我将继续使用博客中的示例:
INSERT INTO user_fts (rowid, username, short_description) SELECT (id, username, short_description) FROM user;
但是,sqlite (3.37.2) 失败并显示row value misused。
请说明id、content_rowid、rowid 和new.id 之间的关系以及如何修改查询以正确更新 FTS 表。
【问题讨论】:
-
哦,我不知道有dba.stackexchange.com - 这个Q该怎么办?
标签: sql sqlite full-text-search fts5