itzbund / gsb-solr
GSB solr. This is Part of the Goverment Site Build (GSB) 11. Der GSB 11 ist eine Maßnahme der Dienstekonsolidierung Bund (DKB) des Bundesministeriums des Innern und für Heimat (BMI) und wird im Auftrag des Informationstechnikzentrums Bund (ITZBund) durchgeführt.
Requires
- php: ^8.1
- apache-solr-for-typo3/solr: ^12.0
- cweagans/composer-patches: ^1.7
- typo3/cms-core: ^12.4
- typo3/cms-frontend: ^12.4
- typo3/cms-install: ^12.4
Requires (Dev)
- captainhook/captainhook-phar: ^5.21
- codeception/codeception: *
- codeception/module-asserts: *
- codeception/module-db: *
- doctrine/dbal: ^3.3
- ergebnis/composer-normalize: ^2.28
- friendsofphp/php-cs-fixer: ^3.14
- helmich/typo3-typoscript-lint: 3.3.0
- itzbund/captainhook-hooks: ^1.0
- michielroos/typo3scan: ^1.7
- mockery/mockery: ^1.6
- php-coveralls/php-coveralls: ^2.5
- phpmd/phpmd: ^2.13
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^10.0
- ramsey/conventional-commits: ^1.5
- saschaegerer/phpstan-typo3: ^1.8
- sbuerk/typo3-cmscomposerinstallers-testingframework-bridge: ^0.1.2
- seld/jsonlint: ^1.9
- squizlabs/php_codesniffer: ^3.7
- ssch/typo3-rector: ^1.1
- symfony/yaml: ^6.1
- typo3/coding-standards: ^0.7 || ^0.8
- typo3/testing-framework: ^8.1
Suggests
- ext-redis: *
- dev-main / 1.x-dev
- v1.13.0-rc.8
- v1.13.0-rc.7
- v1.13.0-rc.6
- v1.13.0-rc.5
- v1.13.0-rc.4
- v1.13.0-rc.3
- v1.13.0-rc.2
- v1.13.0-rc.1
- v1.12.9-rc.6
- v1.12.9-rc.5
- v1.12.9-rc.4
- v1.12.9-rc.3
- v1.12.9-rc.2
- v1.12.9-rc.1
- v1.12.8
- v1.12.8-rc.8
- v1.12.8-rc.7
- v1.12.8-rc.6
- v1.12.8-rc.5
- v1.12.8-rc.4
- v1.12.8-rc.3
- v1.12.8-rc.2
- v1.12.8-rc.1
- v1.12.7
- v1.12.7-rc.10
- v1.12.7-rc.9
- v1.12.7-rc.8
- v1.12.7-rc.7
- v1.12.7-rc.6
- v1.12.7-rc.5
- v1.12.7-rc.4
- v1.12.7-rc.3
- v1.12.7-rc.2
- v1.12.7-rc.1
- v1.12.6
- v1.12.6-rc.10
- v1.12.6-rc.9
- v1.12.6-rc.8
- v1.12.6-rc.7
- v1.12.6-rc.6
- v1.12.6-rc.5
- v1.12.6-rc.4
- v1.12.6-rc.3
- v1.12.6-rc.2
- v1.12.6-rc.1
- v1.12.5
- v1.12.5-rc.7
- v1.12.5-rc.6
- v1.12.5-rc.5
- v1.12.5-rc.4
- v1.12.5-rc.3
- v1.12.5-rc.2
- v1.12.5-rc.1
- v1.12.4
- v1.12.4-rc.8
- v1.12.4-rc.7
- v1.12.4-rc.6
- v1.12.4-rc.5
- v1.12.4-rc.4
- v1.12.4-rc.3
- v1.12.4-rc.2
- v1.12.4-rc.1
- v1.12.3
- v1.12.3-rc.10
- v1.12.3-rc.9
- v1.12.3-rc.8
- v1.12.3-rc.7
- v1.12.3-rc.6
- v1.12.3-rc.5
- v1.12.3-rc.4
- v1.12.3-rc.3
- v1.12.3-rc.2
- v1.12.3-rc.1
- v1.12.2
- v1.12.2-rc.13
- v1.12.2-rc.12
- v1.12.2-rc.11
- v1.12.2-rc.10
- v1.12.2-rc.9
- v1.12.2-rc.8
- v1.12.2-rc.7
- v1.12.2-rc.6
- v1.12.2-rc.5
- v1.12.2-rc.4
- v1.12.2-rc.3
- v1.12.2-rc.2
- v1.12.2-rc.1
- v1.12.1
- v1.12.1-rc.3
- v1.12.1-rc.2
- v1.12.1-rc.1
- v1.12.0
- v1.12.0-rc.9
- v1.12.0-rc.8
- v1.12.0-rc.7
- v1.12.0-rc.6
- v1.12.0-rc.5
- v1.12.0-rc.4
- v1.12.0-rc.3
- v1.12.0-rc.2
- v1.12.0-rc.1
- v1.11.1-rc.2
- v1.11.1-rc.1
- v1.11.0
- v1.11.0-rc.12
- v1.11.0-rc.11
- v1.11.0-rc.10
- v1.11.0-rc.9
- v1.11.0-rc.8
- v1.11.0-rc.7
- v1.11.0-rc.6
- v1.11.0-rc.5
- v1.11.0-rc.4
- v1.11.0-rc.3
- v1.11.0-rc.2
- v1.11.0-rc.1
- v1.10.4-rc.4
- v1.10.4-rc.3
- v1.10.4-rc.2
- v1.10.4-rc.1
- v1.10.3
- v1.10.3-rc.5
- v1.10.3-rc.4
- v1.10.3-rc.3
- v1.10.3-rc.2
- v1.10.3-rc.1
- v1.10.2
- v1.10.2-rc.5
- v1.10.2-rc.4
- v1.10.2-rc.3
- v1.10.2-rc.2
- v1.10.2-rc.1
- v1.10.1
- v1.10.1-rc.12
- v1.10.1-rc.11
- v1.10.1-rc.10
- v1.10.1-rc.9
- v1.10.1-rc.8
- v1.10.1-rc.7
- v1.10.1-rc.6
- v1.10.1-rc.5
- v1.10.1-rc.4
- v1.10.1-rc.3
- v1.10.1-rc.2
- v1.10.1-rc.1
- v1.10.0
- v1.10.0-rc.7
- v1.10.0-rc.6
- v1.10.0-rc.5
- v1.10.0-rc.4
- v1.10.0-rc.3
- v1.10.0-rc.2
- v1.10.0-rc.1
- v1.9.3-rc.5
- v1.9.3-rc.4
- v1.9.3-rc.3
- v1.9.3-rc.2
- v1.9.3-rc.1
- v1.9.2
- v1.9.2-rc.5
- v1.9.2-rc.4
- v1.9.2-rc.3
- v1.9.2-rc.2
- v1.9.2-rc.1
- v1.9.1
- v1.9.1-rc.7
- v1.9.1-rc.6
- v1.9.1-rc.5
- v1.9.1-rc.4
- v1.9.1-rc.3
- v1.9.1-rc.2
- v1.9.1-rc.1
- v1.9.0
- v1.9.0-rc.12
- v1.9.0-rc.11
- v1.9.0-rc.10
- v1.9.0-rc.9
- v1.9.0-rc.8
- v1.9.0-rc.7
- v1.9.0-rc.6
- v1.9.0-rc.5
- v1.9.0-rc.4
- v1.9.0-rc.3
- v1.9.0-rc.2
- v1.9.0-rc.1
- v1.8.1-rc.3
- v1.8.1-rc.2
- v1.8.1-rc.1
- v1.8.0
- v1.8.0-rc.1
- v1.7.1-rc.16
- v1.7.1-rc.15
- v1.7.1-rc.14
- v1.7.1-rc.13
- v1.7.1-rc.12
- v1.7.1-rc.11
- v1.7.1-rc.10
- v1.7.1-rc.9
- v1.7.1-rc.8
- v1.7.1-rc.7
- v1.7.1-rc.6
- v1.7.1-rc.5
- v1.7.1-rc.4
- v1.7.1-rc.3
- v1.7.1-rc.2
- v1.7.1-rc.1
- v1.7.0
- v1.7.0-rc.15
- v1.7.0-rc.14
- v1.7.0-rc.13
- v1.7.0-rc.12
- v1.7.0-rc.11
- v1.7.0-rc.10
- v1.7.0-rc.9
- v1.7.0-rc.8
- v1.7.0-rc.7
- v1.7.0-rc.6
- v1.7.0-rc.5
- v1.7.0-rc.4
- v1.7.0-rc.3
- v1.7.0-rc.2
- v1.7.0-rc.1
- v1.6.1
- v1.6.1-rc.1
- v1.6.0
- v1.6.0-rc.4
- v1.6.0-rc.3
- v1.6.0-rc.2
- v1.6.0-rc.1
- v1.5.1-rc.6
- v1.5.1-rc.5
- v1.5.1-rc.4
- v1.5.1-rc.3
- v1.5.1-rc.2
- v1.5.1-rc.1
- v1.5.0
- v1.5.0-rc.11
- v1.5.0-rc.10
- v1.5.0-rc.9
- v1.5.0-rc.8
- v1.5.0-rc.7
- v1.5.0-rc.6
- v1.5.0-rc.5
- v1.5.0-rc.4
- v1.5.0-rc.3
- v1.5.0-rc.2
- v1.5.0-rc.1
- v1.4.2
- v1.4.2-rc.10
- v1.4.2-rc.9
- v1.4.2-rc.8
- v1.4.2-rc.7
- v1.4.2-rc.6
- v1.4.2-rc.5
- v1.4.2-rc.4
- v1.4.2-rc.3
- v1.4.2-rc.2
- v1.4.2-rc.1
- v1.4.1
- v1.4.1-rc.7
- v1.4.1-rc.6
- v1.4.1-rc.5
- v1.4.1-rc.4
- v1.4.1-rc.3
- v1.4.1-rc.2
- v1.4.1-rc.1
- v1.4.0
- v1.4.0-rc.19
- v1.4.0-rc.18
- v1.4.0-rc.17
- v1.4.0-rc.16
- v1.4.0-rc.15
- v1.4.0-rc.14
- v1.4.0-rc.13
- v1.4.0-rc.12
- v1.4.0-rc.11
- v1.4.0-rc.10
- v1.4.0-rc.9
- v1.4.0-rc.8
- v1.4.0-rc.7
- v1.4.0-rc.6
- v1.4.0-rc.5
- v1.4.0-rc.4
- v1.4.0-rc.3
- v1.4.0-rc.2
- v1.4.0-rc.1
- v1.3.1-rc.1
- v1.3.0
- v1.3.0-rc.5
- v1.3.0-rc.4
- v1.3.0-rc.3
- v1.3.0-rc.2
- v1.3.0-rc.1
- v1.2.1-rc.5
- v1.2.1-rc.4
- v1.2.1-rc.3
- v1.2.1-rc.2
- v1.2.1-rc.1
- v1.2.0
- v1.2.0-rc.14
- v1.2.0-rc.13
- v1.2.0-rc.12
- v1.2.0-rc.11
- v1.2.0-rc.10
- v1.2.0-rc.9
- v1.2.0-rc.8
- v1.2.0-rc.7
- v1.2.0-rc.6
- v1.2.0-rc.5
- v1.2.0-rc.4
- v1.2.0-rc.3
- v1.2.0-rc.2
- v1.2.0-rc.1
- v1.1.1
- v1.1.1-rc.1
- v1.1.0
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-t3v13
- dev-release
This package is auto-updated.
Last update: 2025-07-13 05:48:38 UTC
README
GSB 11 Extension gsb_solr
About
The extension gsb_solr
extends the standard solr
extension to make it work in the context of gsb11.
It provides a custom PageIndexerRequest
object that does not use an external http request to fill the solr index. This is necessary due to limitations in the hosting environment.
also the TitleTagSearchViewHelper adds te Searchword to the title tag.
Installation
The best way to install this extension is to start with the GSB Sitepackage Kickstarter extension.
Quick installation without GSB Sitepackage Kickstarter
In a composer-based TYPO3 installation you can install the extension EXT:gsb_solr via composer:
composer config -g gitlab-domains gitlab.opencode.de && \
composer config -g repositories.gsb-solr vcs https://gitlab.opencode.de/bmi/government-site-builder-11/extensions/gsb_solr.git
composer require itzbund/gsb-solr
Upgrade Wizard
There is TYPO3 upgrade wizard gsbsolr_verifyConfigurationWizard
to add essential configuration for solr to work. The official documentation for TYPO3 describes how you can run an upgrade wizard.
This upgrade wizard will
- Add scheduler task for reindexing each site and working the solr queue
- Add the typoscript configuration for
EXT:gsb_solr
to root templates
Configuration
To set up the TypoScript configuration with sane defaults include the GSB Solr Package
TypoScript record in your websites root Template Record. There is an upgrade wizard that setups up this configuration if it is missing.
Typoscript: allowedSites
⚠️ Warning: if
allowedSites
are not configured properly solr will seem eratic: you might see no search results, ever,you might see search results that don't change when content is changed. You cannot delete any index in the solr server from the backend except for the index for (primary) frontend domains either.
If your site is being served on different domains for backend and frontend it's best to add the frontend domain explicitly to the root plugin.tx_solr.search.query.allowedSite typoscript configuration, e.g.:
plugin.tx_solr.search.query.allowedSites = frontend.domain.de
otherwise if indexing for frontend.domain.de
the index will not be available to users of the backend domain. This is due to EXT:solr siteHash
mechanism and the default value __current_site
.
If you add both the backend and the frontend domain you might see duplicate results, depending on how the indexing was triggered (backend vs cli/task).
⚠️ Note:
allowedSites
is configured automatically when usingEXT:gsb_solr
to use the primary (non-variant) domain of a site (which can differ from what__current_site
means). If you want to configure it differently, you have to do it explicitly in Typoscript (e.g. for search accross sites in a multi-site setup)
Scheduler Tasks
For the EXT:solr
to work properly in TYPO3 you need to set up at least one scheduler task (Index Queue Worker and Force Re-Indexing of a site).
Take a good look at the scheduler task documentation for solr.
⚠️ Warning: The worker should only be configured to index 5-10 documents per run. This is due to our indexer needing a lot of memory as everything is processed in the same request context.
Extension configuration: Indexer modes
This extension provides three indexer modes, which can be configured in the extension settings
⚠️ Note: on readonly systems this can only be configured via environment variables
Indexer mode | Description |
---|---|
use_internal_subrequests | default in GSB11 context: uses lots of memory, because no real HTTP request is ever used. Instead subrequests are used, similar to the error handler of the TYPO3 core. |
use_self_with_host_header | similar to the 'default' implementation, but doesn't use DNS resolution and will always go against 127.0.0.1. Has some benefits in restricted environments because DNS can be flacky; will only work if the current (usually CLI) system also has the web server running (which it might not) |
default | the default EXT:solr implementation |
Usage
Nothing to do.
Contribute
As with TYPO3, we encourage you to join the project by submitting changes. Development of the GSB 11 happens mainly in the GSB 11 TYPO3 extension repositories.
To get started, have a look at our detailed contribution walkthrough.