elliotsawyer / silverstripe-typesense-search-page
A SilverStripe CMS page type for Typesense search powered by InstantSearch.js
Package info
codeberg.org/0x/typesense-search-page
Type:silverstripe-vendormodule
pkg:composer/elliotsawyer/silverstripe-typesense-search-page
Requires
README
A SilverStripe CMS module that provides a TypesenseSearchPage page type for integrating Typesense search into your SilverStripe site using the InstantSearch.js adapter.
Features
- Adds a
TypesenseSearchPagepage type configurable via the CMS - Associates a page with a Typesense collection defined by elliotsawyer/silverstripe-typesense
- CMS editors can select:
- Query fields — which collection fields to search against
- Facet fields — filterable refinement lists shown alongside results
- Sort fields — numeric/sortable fields exposed as sort options
- Pre-selected facets — key/value pairs that pre-filter the search (e.g. limit results to a specific category)
- Renders an InstantSearch.js-powered search UI with:
- Live search box with autofocus
- Infinite scroll hits list
- Refinement lists per facet field
- Sort-by dropdown (relevancy, field asc/desc, date)
- Result stats (hit count and processing time)
- Supports a per-page Search API Key (falls back to the
TYPESENSE_SEARCH_KEYenvironment variable) - Loads InstantSearch.js and the Typesense InstantSearch adapter from jsDelivr CDN (configurable via YAML)
Requirements
- main branch: primarily for development, not for stable builds
- 0.x branch: SilverStripe 5 — use
0.#.#tags. SS5 is near end-of-life; no new features planned - 1.x branch: SilverStripe 6 — use
1.#.#tags. Primary development branch; new features arrive here
Installation
composer require elliotsawyer/silverstripe-typesense-search-page
Run a dev/build after installation:
vendor/bin/sake dev/build flush=
Configuration
See docs/instantsearch.md
Copyright statements
This software includes contributions from Elliot Sawyer, available under the LGPL3-With-Attribution license. This attribution statement is required to be shipped with the module, and is displayed within your application. These will appear in certain areas of your application where the module is being used.
Support
Like my work? Consider shouting me a coffee or a small donation if this module helped you solve a problem. I accept cryptocurrency at the following addresses:
- Bitcoin: 12gSxkqVNr9QMLQMMJdWemBaRRNPghmS3p
- Bitcoin Cash: 1QETPtssFRM981TGjVg74uUX8kShcA44ni
- Litecoin: LbyhaTESx3uQvwwd9So4sGSpi4tTJLKBdz
Paid support is available. Please get in touch at https://sawyer.nz/contact