Search
Search finds posts, users and topics on the /discovery page.
Overview
By default, search works through the database and needs no extra services. An external engine can be connected instead — Algolia or Meilisearch: it ranks results by relevance and tolerates typos.
The driver and external engine keys are set in Admin Panel → Settings → Site → Search.
What is searched
- Posts: title and text; only published posts that are not blocked appear in results
- Users and topics: name and profile address; with the database and Algolia — also the description
Quick search looks for users and topics only.
Post filters
- Exact match: external engines search for the whole phrase; with the database, the post title or text must match the query exactly
- Search by titles only: matches are searched in the title only
- Editorial posts: only editorial content
- Date: the last 24 hours, the current week, the current month, the current year or any time
- Order: by relevance or by publication date
Drivers
- Database: the default driver, no keys
- Algolia: Application ID and Admin API Key from the API Keys section of the Algolia dashboard
- Meilisearch: Host and API Key
When the driver is switched, the keys of the previous engine are deleted.
Database
Results are not ranked by relevance: posts are listed from newest to oldest, users by rating for the current month, topics by activity. Typos and word forms are not taken into account.
Algolia and Meilisearch
An external engine keeps its own index. The index is updated automatically when content is published, changed or deleted.
After the keys are saved, the index is synchronized in Admin Panel → Settings → Site → Search. Queues must be running for synchronization. Synchronization is repeated after switching engines or after bulk changes in the database.
Meilisearch in Docker
docker-compose.yml includes a Meilisearch service for the local environment. It starts with the meilisearch profile:
docker compose --profile meilisearch up -d meilisearchIn the search settings, set Host to http://meilisearch:7700 and API Key to masterKey. This key is for the local environment only; production uses a separate Meilisearch instance or Meilisearch Cloud with its own key.