feat(web/panettone): Support full-text search of issues

Support basic full text search of issues using postgresql's built-in
text search. There's a new column on the issues table called `tsv`,
which contains a tsvector of the title concatenated with the
description, and a new search form on both the index and closed issues
page which allows searching that tsvector with a user-supplied query.
Results are ranked according to that text query in the case of a search.

This works fine for now, but next up I'd also like to highlight the
results according to the bits that matched the user's query.

Change-Id: I25170bedbbbcdc3ed29a047962e9fcfe280d763a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11258
Autosubmit: aspen <root@gws.fyi>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
Aspen Smith 2024-03-24 14:31:47 -04:00 committed by aspen
parent 7f3d93942a
commit a80c0ce95f
7 changed files with 126 additions and 36 deletions

View file

@ -49,7 +49,24 @@
:color "var(--primary)")))
(.comment-count
:color "var(--gray)")))
:color "var(--gray)")
(.issue-links
:display "flex"
:flex-direction "row"
:align-items "center"
:justify-content "space-between"
:flex-wrap "wrap")
(.issue-search
((:and input (:= type "search"))
:padding "0.5rem"
:background-image "url('static/search.png')"
:background-position "10px 10px"
:background-repeat "no-repeat"
:background-size "1rem"
:padding-left "2rem"
:border "1px" "solid" "var(--gray)"))))
(defparameter issue-history-styles
`((.issue-history
@ -220,4 +237,15 @@
:margin "0 auto")
(.created-by-at
:color "var(--gray)")))
:color "var(--gray)")
;; screen-reader-only content
(.sr-only
:border 0
:clip "rect(0 0 0 0)"
:height "1px"
:margin "-1px"
:overflow "hidden"
:padding 0
:position "absolute"
:width "1px")))