feat: search materials through beachcomber
- Material is a beachcomber Searchable (index jz_bm_materials) in the hand-written models/material_search.go; jz.bm requires summercms v0.6.4 - classes.MaterialIndexer asks Typesense for up to 250 candidates with body highlights; the app-wide Gate is on only for jz.bm-marked contexts - GET /_bm/api/v1/materials takes q: candidates are re-gated, counted and paged in SQL in rank order, each row with at most one plain snippet - search failure answers 503 Search is unavailable.; without q the list is unchanged
This commit is contained in:
@@ -152,6 +152,7 @@ func TestQueryValidation(t *testing.T) {
|
||||
{"materials course negative", h.Materials, "/?course=-1", "course"},
|
||||
{"materials meeting zero", h.Materials, "/?meeting=0", "meeting"},
|
||||
{"materials tag too long", h.Materials, "/?tag=" + longTag(), "tag"},
|
||||
{"materials q too long", h.Materials, "/?q=" + longTag(), "q"},
|
||||
}
|
||||
for _, tc := range cases {
|
||||
code, body := serve(t, tc.fn, http.MethodGet, tc.target, user, nil)
|
||||
|
||||
Reference in New Issue
Block a user