techdivision / neos-search
为 TYPO3 Neos 提供前端搜索界面
Requires
This package is auto-updated.
Last update: 2019-08-26 08:40:41 UTC
README
!!已弃用!!
TechDivision.Neos.Search
此软件包为 TYPO3 Neos 提供前端搜索界面。被索引的 TYPO3 Neos 节点可进行搜索并找到。结果取决于上下文。访客无法找到不在默认实时工作空间中的节点。发布包含节点更改的页面会自动更新索引中的节点文档。无需 cron 作业即可保持索引更新。有一个命令控制器可以添加/更新/删除索引中的所有节点。还提供了一个后端模块。
此软件包使用 TechDivision.Search 软件包作为搜索后端。
安装
此软件包及其依赖项 "TechDivision.Search" 已添加到 packagist.org。只需在实例文件夹中执行以下命令即可安装此软件包。它的依赖项 "TechDivision.Search" 也会自动安装。
composer require techdivision/neos-search \*
建议全局安装 composer。
集成
要使用提供的前端插件,您必须集成所需的 TypoScript。将以下行添加到您网站软件包的 TypoScript 中。例如,在 "TYPO3.NeosDemoTypo3Org" 网站中,在文件 Resources / Private / TypoScripts / Library / Root.ts2 中
include: resource://TechDivision.Neos.Search/Private/TypoScript/Root.ts2
现在您可以在后端添加前端插件。
已知错误
在后台将 FE 插件添加到页面时抛出 ExtDirect 错误
我认为 Neos 中仍存在错误。只需在添加后刷新页面,插件即可添加,并且一切正常。
搜索其他节点类型
可以将其他节点类型添加到搜索索引中。查看 Settings.yaml 了解如何配置。
搜索其他模型
默认情况下,此软件包提供对类型为 "TYPO3/TYPO3CR/Domain/Model/Node" 的节点的搜索。可以添加其他模型。只需在您的软件包中实现工厂接口并扩展它们。以下是要实现的接口和要扩展的工厂:
- \TechDivision\Neos\Search\Factory\ResultFactoryInterface
- \TechDivision\Neos\Search\Factory\ResultFactory
- \TechDivision\Neos\Search\Factory\DocumentFactoryInterface
- \TechDivision\Neos\Search\Factory\DocumentFactory
要使用自己的工厂,请查阅 Configuration/Objects.yaml 了解如何配置。
使用其他搜索后端
在 TechDivision.Search 软件包中的搜索后端是完全可转换的。查看其文档了解如何添加其他搜索后端实现。要使用自己的搜索后端,请查阅 Configuration/Objects.yaml 了解如何配置。
测试
本软件包由单元测试完全覆盖,100%测试覆盖率。只有命令控制器未被覆盖。该命令控制器仅用于简单测试和调试,应在未来移除。
功能测试目前不适用,因为在测试环境中数据库已设置但未填充节点。可能我会找到解决方案。
TYPO3 Flow最近一次的更改破坏了功能测试的覆盖率
功能测试目前不适用,TYPO3 Flow框架的最近更改几乎不可能将代码覆盖率达到100%。已经在forge创建了相关问题以修复此问题
https://forge.typo3.org/issues/46974
设计决策
作为搜索接口,它使用TechDivision.Search包。TechDivision.Search包提供了一种通用的搜索接口,用于(可能)各种搜索后端。
本软件包是为TYPO3 Neos设计的。Neos中的页面以节点形式表示,节点类型为TYPO3.Neos.NodeTypes:Page。因此,每个搜索结果都有一个“页面节点”。默认情况下,仅支持节点进行索引和搜索。由于使用了各种接口,并且实现是在Objects.yaml中选择的,因此可以通过扩展您自己的包中的现有源代码来索引和搜索其他模型。
为了获得最大的可能性,每个节点都会单独索引和搜索。结果是最合适的节点,并且按页面进行了缩减。
为什么使用这个命名空间?
到目前为止,这是一个我在业余时间做的非公司项目。我选择这个命名空间是为了参加公司内部比赛。
许可证
此内容属于TYPO3 Flow包“TechDivision.Search”。
这是一款免费软件;您可以在GNU通用公共许可证的条款下重新分发和/或修改它,许可证版本为3,或(根据您的选择)任何更高版本。
版权(C)2013 Matthias Witte http://www.matthias-witte.net