Public site search
Public site search is opt-in. When enabled, visitors get a header search icon (magnifying glass) and a public GET /search page. The search page is always noindex (not meant for Google).
Enable: Identity → Site Settings → Components → Public site search. The panel shows index status and a Rebuild search index button when search is on.
What is indexed
Published public pages (Page Builder + classic body text)
Enabled library content (News, Services, Procedures, etc.)
Translation page sidecars when Translation is licensed
Members-only pages and library catalogs — hidden from guests; signed-in users see them in results
Indexing is incremental on publish/save. Run a full rebuild after switching drivers or restoring from backup.
Search drivers
Set CMS_SEARCH_DRIVER in the host .env (default auto):
| Driver | When used |
|---|---|
auto | Meilisearch when MEILISEARCH_HOST is set and healthy; else database FTS when public search is on and FTS tables exist; else flat-file scan |
scan | Zero-config substring scan over flat files (small sites) |
database | SQLite FTS5 or PostgreSQL tsvector in the host DB (run migrations) |
meilisearch | External Meilisearch instance — typo tolerance, best for large indexes |
When meilisearch is the active driver, only the Meilisearch index is maintained (not database FTS in parallel). Switching drivers requires php artisan cms:search-reindex {site} or the Site Settings rebuild button.
Optional Meilisearch env
Meilisearch is not bundled with Coaptive CMS. Self-host Docker/binary or use Meilisearch Cloud.
CMS_SEARCH_DRIVER=auto
MEILISEARCH_HOST=http://127.0.0.1:7700
MEILISEARCH_KEY=
MEILISEARCH_INDEX_PREFIX=coaptiveArtisan
php artisan cms:search-reindex # current CMS_SITE
php artisan cms:search-reindex coaptivecoreCoaptive GME enables search on the marketing site only (Institution Site Settings). Program sites do not get a separate public search index.
See also Control Panel guide and Content structure.