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):

DriverWhen used
autoMeilisearch when MEILISEARCH_HOST is set and healthy; else database FTS when public search is on and FTS tables exist; else flat-file scan
scanZero-config substring scan over flat files (small sites)
databaseSQLite FTS5 or PostgreSQL tsvector in the host DB (run migrations)
meilisearchExternal 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=coaptive

Artisan

php artisan cms:search-reindex          # current CMS_SITE
php artisan cms:search-reindex coaptivecore

Coaptive 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.