Skip to main content

fts5_full_text_search

🗂 Implement Full-Text Search with FTS5​

FTS5 allows blazing-fast full-text search over large text fields by creating a virtual table with its own tokenizer. Use MATCH queries and rank results with BM25. It's ideal for search boxes, log analysis, and content indexing.

-- Create an FTS5 virtual table
CREATE VIRTUAL TABLE articles_idx USING fts5(
title, content, tokenize = 'porter'
);

-- Index existing data
INSERT INTO articles_idx(rowid, title, content)
SELECT id, title, content FROM articles;

-- Perform a full-text search
SELECT rowid, title,
bm25(articles_idx) AS rank
FROM articles_idx
WHERE articles_idx MATCH 'SQLite optimization'
ORDER BY rank;