itzbund / gsb-solr
GSB solr。这是政府网站建设(GSB)11的一部分。GSB 11是德国联邦内政部和家乡部(BMI)服务整合联邦(DKB)的措施,并由联邦信息技术中心(ITZBund)负责执行。
Requires
- php: ^8.1
- apache-solr-for-typo3/solr: ^12.0
- typo3/cms-core: ^12.4
- typo3/cms-frontend: ^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.1.0 || 3.2.0 || 3.2.1
- 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.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-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-release
This package is auto-updated.
Last update: 2024-09-28 04:17:34 UTC
README
GSB 11 扩展 gsb_solr
关于
扩展 gsb_solr
扩展标准 solr
扩展,使其在 gsb11 的上下文中工作。
它提供了一个自定义的 PageIndexerRequest
对象,不使用外部 http 请求来填充 solr 索引。这是由于托管环境的限制所必需的。此外,TitleTagSearchViewHelper 将搜索词添加到标题标签中。
安装
安装此扩展的最佳方式是从 GSB 网站包启动器扩展 开始。
无需 GSB 网站包启动器的快速安装
在基于 composer 的 TYPO3 安装中,您可以通过 composer 安装扩展 EXT:gsb_solr。
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
配置
Typoscript: allowedSites
要设置具有合理默认值的 TypoScript 配置,请在您的网站根模板记录中包含 GSB Solr Package
TypoScript 记录,或激活 ITZBUNDPHP-3878
功能标志。
如果您的网站在后台和前端使用不同的域名进行托管,最好将前端域名明确添加到根 plugin.tx_solr.search.query.allowedSite Typoscript 配置中,例如。
plugin.tx_solr.search.query.allowedSites = frontend.domain.de
否则,如果为 frontend.domain.de
索引,则索引将不可用于后台域的用户。这是由于 EXT:solr 的 siteHash
机制和默认值 __current_site
导致的。如果您同时添加后台和前端域,您可能会看到重复的结果,具体取决于索引的触发方式(后台 vs cli/task)。
⚠️ 警告:如果配置了不正确的 allowedSites,solr 可能会表现出异常:您可能看不到任何搜索结果,或者当内容更改时搜索结果不会更改。您不能从后台删除 solr 服务器上的任何索引,除了(主要)前端域的索引。
计划任务
为了在 TYPO3 中正确地使用 solr,您需要设置至少一个计划任务(索引队列工作器和强制重新索引网站)。
请参阅 solr 计划任务文档。
⚠️ 警告:工作器应仅配置为在每次运行中索引 5-10 个文档。这是由于我们的索引器需要大量的内存,因为所有内容都在同一请求上下文中处理。
扩展配置:索引器模式
此扩展提供了三种索引器模式,可以在扩展设置中进行配置
⚠️ 注意:在只读系统上,这只能通过环境变量进行配置
索引器模式 | 描述 |
---|---|
use_internal_subrequests | 在 GSB11 上下文中的默认值:使用大量内存,因为从不使用真正的 HTTP 请求。相反,使用子请求,类似于 TYPO3 核心的错误处理器。 |
use_self_with_host_header | 类似于“默认”实现,但不使用DNS解析,始终指向127.0.0.1。在受限环境中有一些优点,因为DNS可能会不稳定;只有当当前系统(通常是CLI)也运行了Web服务器时(它可能没有运行)才会工作。 |
默认 | 默认的EXT:solr 实现 |
用法
无需操作。
gsb_solr中的功能标志
本文档解释了如何使用功能标志。功能标志允许您在安装中启用或禁用特定功能。对于不使用未通过审批流程的功能来说,这一点尤为重要。
配置
功能标志配置在ddev机器上的.env
或local-dev/.ddev/docker-compose.environment.yaml
文件中。要添加功能标志,使用以下语法
# Feature flag for the specific tickets. Set them to true to activate the features.
- TYPO3__SYS__features__ITZBUNDPHP-749=%const(bool:true)%
在此示例中,功能标志ITZBUNDPHP-749
设置为true
。要禁用功能,将值更改为false
或删除设置。
功能标志真值表
此表说明了功能标志在不同状态下的行为。
功能标志状态 | 评估值 | 描述 |
---|---|---|
featureFlag = true | true | 功能被显式启用。 |
featureFlag = false | false | 功能被显式禁用。 |
featureFlag = '' | false | 空值被视为false 。 |
featureFlag不存在 | false | 不存在的标志默认为false 。 |
gsb_core当前的功能标志
功能标志 | 描述 |
---|---|
ITZBUNDPHP-749 | 启用搜索输入字段的自动建议功能 |
ITZBUNDPHP-3878 | 自动配置allowedSites |
在PHP代码中的使用
要在您的PHP代码中使用功能标志,您可以在全局TYPO3配置中检查标志的值。以下是一个示例
if (GeneralUtility::makeInstance(Features::class)->isFeatureEnabled('ITZBUNDPHP-749')) {
// Only if the feature flag is set to true the feature is activated
// Feature-specific code goes here
}
在此示例中,只有当功能标志ITZBUNDPHP-749
设置为true
时,功能特定的代码才会执行。
在Fluid模板中的使用
您还可以使用自定义ViewHelper在您的Fluid模板中使用功能标志。首先,确保您包含了ViewHelper的命名空间
{namespace gsb=ITZBund\GsbCore\ViewHelpers}
然后,使用featureFlag
ViewHelper根据功能标志条件性地渲染内容
<f:if condition="{gsb:featureFlag(featureKey: 'ITZBUNDPHP-749')}">
<!-- Feature-specific content goes here -->
</f:if>
在此示例中,如果功能标志ITZBUNDPHP-749
未设置为false
,则<f:if>
标签内的内容将始终被渲染。
进一步阅读
有关TYPO3中功能标志的更多信息,请参阅TYPO3功能标志文档。
贡献
与TYPO3一样,我们鼓励您通过提交更改来加入项目。GSB 11的开发主要发生在GSB 11 TYPO3扩展仓库中。
要开始,请查看我们的详细的贡献指南。