Hi avis,
Thank you for the question.
That is basically intended behaviors for performance reasons.
Regarding English words, it is based on Porter stemming algorithm which is a kind of English morphological word stemming algorithms used for the term normalisation process of full-text search index.
You can search ‘doing’ with ‘do’ or ‘doing’ but can’t with ‘doi’.
Just like you don’t get results containing ‘doing’ when searched with ‘doi’ on Google.
SQLite’s FTS doesn’t work like grep for performance reason.
Similarly, regarding Japanese words, text is tokenized with TinySegmenter.
Currently the FTS only supports only forward matching.