CREATE VIRTUAL TABLE IF NOT EXISTS document_search USING fts5( title, content, path UNINDEXED, tokenize='porter' ); INSERT INTO document_search (rowid, title, content, path) SELECT rowid, title, '', path FROM documents; CREATE TRIGGER IF NOT EXISTS document_search_insert AFTER INSERT ON documents BEGIN INSERT INTO document_search (rowid, title, content, path) VALUES (NEW.rowid, NEW.title, '', NEW.path); END; CREATE TRIGGER IF NOT EXISTS document_search_update AFTER UPDATE ON documents BEGIN UPDATE document_search SET title = NEW.title, path = NEW.path WHERE rowid = NEW.rowid; END; CREATE TRIGGER IF NOT EXISTS document_search_delete AFTER DELETE ON documents BEGIN DELETE FROM document_search WHERE rowid = OLD.rowid; END;