SQLite includes a Full-Text Search (FTS) engine. The current version is known as FTS3. The FTS3 engine is designed to catalog and index large bodies of text. Once indexed, the FTS3 engine can quickly search for documents based off various types of keyword searches. Although the FTS3 source is now maintained by the SQLite team, parts of the engine were originally contributed by members of Google’s engineering team.
The FTS3 engine is a virtual table module. Virtual
tables are similar to views, in that they wrap a data source to make it look
and act like a normal table. Views get their data from a
SELECT statement, while virtual tables
depend on user-defined C functions. All of the functions required to
implement a virtual table are wrapped up in an extension known as a module.
For more information on how SQLite modules and virtual tables work, see
Full-Text Search is an important and evolving technology, and is one of the areas that is targeted for improvements and enhancements as this book goes to press. Although this section gives a brief overview of the core FTS3 features, if you find yourself considering the FTS3 module, I would encourage you to review the full documentation on the SQLite website.
The FTS3 engine is included in all standard
distributions of the SQLite source (including the amalgamation), but is
turned off by default. To enable basic FTS functionality, define
SQLITE_ENABLE_FTS3 compiler directive when building the SQLite library. ...