lochmueller / seal
SEAL Search - Flexible integration of the Search Engine Abstraction Layer project
Fund package maintenance!
lochmueller
paypal.me/lochmueller
Installs: 125
Dependents: 1
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 0
Open Issues: 0
Type:typo3-cms-extension
pkg:composer/lochmueller/seal
Requires
- php: ^8.3
- cmsig/seal: ^0.12
- lochmueller/index: ^2.0
- typo3/cms-core: ^13.4||^14.0
- typo3/cms-extbase: ^13.4||^14.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.84
- phpstan/phpstan: ^2.1
- typo3/testing-framework: ^8.0||^9.3
Suggests
- cmsig/seal-algolia-adapter: An adapter to support algolia in cmsig/seal search abstraction.
- cmsig/seal-elasticsearch-adapter: An adapter to support elasticsearch in cmsig/seal search abstraction.
- cmsig/seal-loupe-adapter: An adapter to support loupe in cmsig/seal search abstraction.
- cmsig/seal-meilisearch-adapter: An adapter to support meilisearch in cmsig/seal search abstraction.
- cmsig/seal-memory-adapter: An adapter to support to write into memory for cmsig/seal search abstraction.
- cmsig/seal-multi-adapter: An adapter to support to write into multiple other adapters cmsig/seal package.
- cmsig/seal-opensearch-adapter: An adapter to support opensearch in cmsig/seal search abstraction.
- cmsig/seal-read-write-adapter: An adapter to support to split read and write operations for the cmsig/seal package.
- cmsig/seal-redisearch-adapter: An adapter to support RediSearch in cmsig/seal search abstraction.
- cmsig/seal-solr-adapter: An adapter to support apache solr in cmsig/seal search abstraction.
- cmsig/seal-typesense-adapter: An adapter to support typesense in cmsig/seal search abstraction.
README
SEAL Search - Flexible integration of the Search Engine Abstraction Layer (SEAL) project into TYPO3. Different index configurations and multiple possibilities. Use it with TYPO3 or for example with Meilisearch, Solr, Loupe, Typesense - without changing the integration. Have fun.
Requirements
- PHP 8.3+
- TYPO3 v13.4 or v14.0
- EXT:index
Installation
- Install and configure the EXT:index extension
- Run
composer require lochmueller/seal - Optional: Install the right adapter if you want to use a specific engine (see below)
- Load the SiteSet
lochmueller/sealin your site configuration - Configure the search adapter via site configuration (DSN)
- Configure individual search options
Configuration
The extension is configured via the TYPO3 site configuration. The following options are available:
| Option | Default | Description |
|---|---|---|
sealSearchDsn |
typo3:// |
DSN for the search adapter |
sealAutocompleteMinCharacters |
3 |
Minimum characters for autocomplete |
sealItemsPerPage |
10 |
Items per page in search results |
DSN Examples
typo3:// # Local TYPO3 database adapter
loupe://var/loupe # Loupe file-based search
meilisearch://127.0.0.1:7700 # Meilisearch server
elasticsearch://127.0.0.1:9200 # Elasticsearch server
typesense://127.0.0.1:8108 # Typesense server
algolia://APP_ID:API_KEY # Algolia cloud service
solr://127.0.0.1:8983 # Apache Solr server
opensearch://127.0.0.1:9200 # OpenSearch server
redisearch://127.0.0.1:6379 # RediSearch
Available Adapters
Install the adapter you need via composer:
| Adapter | Package |
|---|---|
| Memory (Testing) | composer require cmsig/seal-memory-adapter |
| Loupe | composer require cmsig/seal-loupe-adapter |
| Meilisearch | composer require cmsig/seal-meilisearch-adapter |
| Elasticsearch | composer require cmsig/seal-elasticsearch-adapter |
| Typesense | composer require cmsig/seal-typesense-adapter |
| Algolia | composer require cmsig/seal-algolia-adapter |
| Apache Solr | composer require cmsig/seal-solr-adapter |
| OpenSearch | composer require cmsig/seal-opensearch-adapter |
| RediSearch | composer require cmsig/seal-redisearch-adapter |
| Read/Write Split | composer require cmsig/seal-read-write-adapter |
| Multi Adapter | composer require cmsig/seal-multi-adapter |
CLI Commands
# Update the schema in all configured SEAL adapters
vendor/bin/typo3 seal:schema
Extension Structure
| Directory | Description |
|---|---|
Adapter/ |
The SEAL TYPO3 Adapter for local database |
Command/ |
CLI tools for schema management |
Controller/ |
Frontend plugins |
Engine/ |
Factory for engine creation |
Event/ |
PSR-14 events of EXT:seal |
EventListener/ |
Event listeners and connection to EXT:index |
Exception/ |
Custom exceptions |
Filter/ |
Search filter implementations |
Handler/ |
Request handlers (e.g., autocomplete) |
Middleware/ |
PSR-15 middleware stack |
Pagination/ |
Fluid pagination based on SEAL Generator |
Schema/ |
Schema structure management |
Development
# Install dependencies composer install # Fix code style composer code-fix # Run static analysis (PHPStan level 8) composer code-check # Run unit tests composer code-test
Credits
Thanks to SEAL for the nice idea and TYPO3 Association & TYPO3 Community for sponsoring the extension.