From 5447e2c677f8066f9cc323f8376c9c118f3eb224 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Fri, 8 Dec 2023 17:22:00 +0100 Subject: started a FTS5/sqlite3 search --- search/fts5/README | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 search/fts5/README diff --git a/search/fts5/README b/search/fts5/README new file mode 100644 index 0000000..a9ce834 --- /dev/null +++ b/search/fts5/README @@ -0,0 +1,34 @@ +# Search index with Sqlite3 FTS5 Full Text Search + +# generate JSON dynamically with a JSON output generator, +# see https://halfelf.org/2017/hugos-making-json/ +#curl http://localhost:1313/index.json > posts.json +curl http://www.andreasbaumann.cc/index.json > posts.json + +# we need sqlite and FTS5 +# https://www.legendu.net/misc/blog/hands-on-full-text-search-in-sqlite3/ +pacman -S sqlite3 + +# use posts.json to create entries in the virtual FTS5 table +rm posts.db +cat < posts.sql +sqlite3 posts.db < posts.sql + +# some test queries +# https://www.legendu.net/misc/blog/hands-on-full-text-search-in-sqlite3/ +# https://sqlite.org/fts5.html +select uri from posts where posts MATCH 'OpenBSD' ORDER BY bm25(posts); +select uri,highlight(posts, 1, '', ''),snippet(posts, 2, '', '', '...', 10) from posts where posts MATCH 'OpenBSD' ORDER BY bm25(posts); + +# TODO: make a server-side search (search window and result page) + +# TODO: add as sqlite.js to page with data (local sqlite fts search) +# https://blog.ouseful.info/2022/04/06/compiling-full-text-search-fts5-into-sqlite-wasm-build/ +# https://jlongster.com/future-sql-web +# https://phiresky.github.io/blog/2021/hosting-sqlite-databases-on-github-pages/ -- cgit v1.2.3-54-g00ecf