Search enhancements: faceting, relevance tuning, and a public search endpoint #35
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Milestone 5 delivered admin full-text search (
GET /api/admin/search,ViewInternal) with a single text query + a visibility filter. Several richer capabilities were deliberately left out of M5 scope. Tracking them here as a backlog of distinct, independently-schedulable pieces (split into separate issues when picked up).Candidates
Faceting + facet counts. Beyond visibility: filter/aggregate by
object_name,current_owner, has-images, date ranges, and show counts per facet value. Requires declaring facet/filterable attributes on the Meilisearch index (SearchClient::ensure_indexcurrently only setsvisibilityfilterable) and exposing facet distributions through the endpoint + UI.Relevance tuning. Configure Meilisearch ranking rules, typo tolerance, synonyms, and searchable-attribute ordering (e.g. weight
object_name/object_numberabove flattenedfields_text). Currently the index uses defaults.Public search endpoint (
GET /api/public/search). The M5 endpoint is admin-only and searches all visibility levels. A public-facing site would need a search restricted tovisibility = public, mirroring thepublic::list_objectsaccess model. Pairs with any future public website.Search query analytics / logging — what users search for, zero-result queries (to inform synonyms/vocabulary), etc.
Notes
reindexincrates/api/src/lib.rs) andreindex_allrecovery path already keep the index current; these enhancements are about query richness and index configuration, not freshness.