Modules
Tokenizers and table options
Theunicode61 (default), ascii, porter, and trigram tokenizers are available. The icu tokenizer is not.
Contentless and external-content tables, detail=, columnsize=, prefix=, and UNINDEXED columns all work as documented upstream.
Match expressions
MATCH expressions support terms, "phrases", prefix*, column:term, NEAR, AND, OR, and NOT.
NOT is a binary operator in both FTS5 and FTS3/4, so write a NOT b rather than a AND NOT b. The AND NOT form is a syntax error.
The fts4aux table accepts only the one-argument form fts4aux(table).
Auxiliary functions
See the SQLite documentation for the FTS5 auxiliary functions and the FTS3/4 snippet, offsets, and matchinfo functions.
The
bm25() score is also exposed as the hidden rank column, and its weights can be configured with INSERT INTO t(t, rank) VALUES ('rank', 'bm25(10.0, 1.0)').
When a term appears in half or more of the rows, its score is -0.0. That is correct BM25 behavior, not a fault.
Special commands
FTS5 special commands are written asINSERT INTO t(t) VALUES ('command').
The optimize, rebuild, integrity-check, merge, automerge, usermerge, crisismerge, pgsz, secure-delete, and flush commands are accepted on every FTS5 table. The delete and delete-all commands work only on contentless and external-content tables.
FTS3/4 tables accept optimize, rebuild, integrity-check, merge=n,m, and automerge=n.