webidx is a client-side search engine for static websites. It works by using a simple Perl script (webidx.pl) to generate an SQLite database containing an index of static HTML files. The SQLite database is then published alongside the static content.
The search functionality is implemented in webidx.js which uses sql.js to provide an interface to the SQLite file.
Seems like this should be pretty easy to plug into a Pelican workflow. I might want to write my own database generator in Python, though.
Maybe there's a way to enable vector searching in SQLite?