> The other option is the built-in sqlite3 module. most CPython
> distributions have this enabled out of box:
APSW is also based on SQLite :)
Using the built-in sqlite3 and FTS5 has the following limitations:
* You can only use the standard tokenizers and auxiliary functions - ie you cannot provide your own
* Those tokenizers are based on old (2012) Unicode definitions, and are not aware of grapheme clusters, or able to work on languages that do not use spaces as word separators like Chinese and Japanese.
if you can work within those limitations then great. Note that you can use both APSW and the built-in sqlite3 module at the same time in the same process, as long as you don't access the same database files on Unix platforms.
Because APSW binds to the SQLite and FTS5 C APIs you do not have the limitations above, and you then get control over tokenization, ranking etc. Then you get the extra tokenizers, ranking functions, more like, query correction/suggestion etc - all great features in Whoosh too.
Roger