search: match by tag; add: handle ssl errors with manual entry

This commit is contained in:
blankie 2026-06-09 05:35:54 +00:00
parent 6c4b26781d
commit 8e68d02413
2 changed files with 18 additions and 1 deletions

View file

@ -41,6 +41,23 @@ def handle_search(query):
else:
fused_ids = bm25_ids
# Also match by tag
search_terms = [w.lower() for w in q.split() if w]
if search_terms:
placeholders = ",".join("?" * len(search_terms))
tag_rows = db.execute(
f"SELECT DISTINCT pt.page_id FROM page_tags pt "
f"JOIN tags t ON t.id = pt.tag_id "
f"WHERE LOWER(t.name) IN ({placeholders})",
search_terms,
).fetchall()
tag_ids = {r["page_id"] for r in tag_rows}
seen = set(fused_ids)
for pid in tag_ids:
if pid not in seen:
fused_ids.append(pid)
seen.add(pid)
total_results = len(fused_ids)
page_ids = fused_ids[offset:offset + PER_PAGE]