Download the PHP package blomstra/search without Composer
On this page you can find all versions of the php package blomstra/search. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package search
Search replaces the native Flarum search functionality which relies on MySQL badly performing fulltext search with one that is completely relying on the proven elasticsearch engine.
Features
- Sync discussions and posts to Elasticsearch using your queue, unobtrusively for the user.
- Reduces search loading times to well below 400ms (local tests with 50,000 discussions: 260ms)
- Uses Flarum's group permissions and tags system.
- Compatible with Friends of Flarum Byōbu.
Requirements
- Elasticsearch 7.x or OpenSearch 1.x+
- A non-sync queue driver with a running worker (
php flarum queue:work) is strongly recommended for production. The extension works with the default sync driver, but index jobs run inline which adds latency to user-facing changes like posting.
Installation
Enable the extension in the admin area and configure the Elasticsearch endpoint and index name in the extension settings.
Setting up the index
First install
Run the build command once. It creates a timestamped concrete index, immediately aliases your configured index name to it, and begins queuing documents. Search is available and improves as the queue processes:
Subsequent rebuilds (zero-downtime)
When you need to rebuild the full index (e.g. after a mapping change):
After the queue drains, fill any gaps from content posted during the build:
If you kept a backup and want to roll back:
Once satisfied with the new index, drop the backup:
Blue-green rebuild (manual promotion)
Use --staging to keep the old index live until you explicitly promote:
Resuming or cancelling an interrupted build
If a build is interrupted, re-run it with the appropriate flag:
Filling gaps in an existing index
If documents are missing from the live index (e.g. due to queue failures):
Updating the mapping only
To push a mapping change to the live index without rebuilding:
Command reference
| Command | Description |
|---|---|
build |
Rebuild the index and promote automatically once all jobs are queued. On first install, aliases immediately so search is live during seeding. |
build --keep-backup |
Rebuild and promote, retaining the old index as a backup for rollback. |
build --staging |
Build into a staging index without promoting — use promote when ready (blue-green workflow). |
build --resume |
Resume an interrupted build from where each seeder left off. |
build --fresh |
Drop the staging index and start completely fresh. |
promote |
Atomically swap the alias to the staging index. Prompts for confirmation (blue-green workflow). |
promote --keep-backup |
Promote and retain the replaced live index as a backup for rollback. |
rollback |
Restore the backup index to live. Deletes the index that was live. |
discard --pending |
Drop the staging index without promoting (cancels an in-progress build). |
discard --backup |
Drop the backup index (cleanup after --keep-backup). |
mapping |
Push updated mapping to the live index without rebuilding or reseeding. |
fill |
Seed only documents missing from the live index. |
build --only=discussions |
Seed only the specified document type (discussions or posts). |
build --throttle=N |
Wait N seconds between batches (reduces queue pressure). |
build --max-id=N |
Limit seeding to documents with ID ≤ N. |
promote --i-am-sure |
Skip the promotion confirmation prompt (for scripts and CI). |
FAQ
Queue configuration
"Can I dispatch indexing jobs to a specific queue?"
Yes:
"I have a different question"
Reach out ot us via https://support.on-floxum.com/t/ext-search . If you have an active subscription, please mention what plan you are on.
- Floxum provides managed Flarum hosting.
- https://floxum.com
- https://support.on-floxum.com/t/ext-search
All versions of search with dependencies
flarum/core Version ^1.2.0
elasticsearch/elasticsearch Version 7.*
spatie/elasticsearch-query-builder Version ^1.3.0