Skip to content

Search operations

Available in the local environment

Katra uses Laravel Scout and self-hosted Meilisearch for derived full-text search. PostgreSQL remains authoritative for content and access.

The Server determines the user’s authorized conversation scope before search ranking. It reconciles authorization again before returning results. Meilisearch is not exposed directly to the browser.

Run index-setting synchronization after a deployment changes the searchable schema:

Terminal window
docker compose exec server php artisan scout:sync-index-settings

Rebuild the message index from PostgreSQL rather than restoring Meilisearch as authoritative data:

Terminal window
docker compose exec server php artisan scout:flush "App\\Models\\Message"
docker compose exec server php artisan scout:import "App\\Models\\Message"

Use the current application model name if it changes. Validate the exact command against the installed Server before a consequential rebuild.

Terminal window
curl http://localhost:7700/health
docker compose exec server php artisan katra:foundation:check

Do not expose Meilisearch outside the trusted service network. Search results must never become a shortcut around organization, conversation, participant, or guest authorization.