techdivision / search
提供可扩展实现的搜索界面
Requires
- typo3/flow: *
This package is auto-updated.
Last update: 2019-08-26 08:39:55 UTC
README
!!已弃用!!
TechDivision.Search
该软件包为TechDivision.Neos.Search软件包提供接口。提供了两种不同的实现
Solr Rest
此实现使用默认的php curl扩展。在大多数情况下,您应使用此提供者。它与Apache Solr 4.x和3.6.x兼容
Solr 扩展
此实现使用solr php扩展
https://php.ac.cn/manual/en/book.solr.php http://pecl.php.net/package/solr
目前,php solr扩展仅与Apache Solr 3.6.x兼容!
添加其他搜索后端
搜索后端是完全可转换的。要添加搜索后端(mysql,OpenSearchServer等),只需在您的软件包中实现
\TechDivision\Search\Provider\ProviderInterface
。若要使用自己的提供者,例如与TechDivision.Neos.Search软件包一起使用,请查阅TechDivision.Neos.Search软件包的文档。
设计决策
我创建了一个专门的“搜索”软件包,以便有机会通过配置将后端逻辑更改为另一种逻辑。这样(对于基本需求),各种后端解决方案都可以使用通用文档和字段。此整个软件包是通过测试驱动开发创建的,代码覆盖率100%。一个主要范例是“关注点分离”,因此有许多小型类和具有小型方法的类。
测试
TechDivision.Search由100%的单元测试和功能测试覆盖。未覆盖
类中的“initializeObject”方法
TechDivision\Search\Provider\Solr\Extension\Provider
它初始化php solr扩展的solr客户端,这应由solr php扩展的开发者进行覆盖。
类
TechDivision\Search\Provider\Solr\Rest\CurlClient
它初始化php curl扩展。逻辑非常少。我可能会在将来找到测试它的解决方案。
还有一些其他方法未覆盖,这些方法不包含逻辑,仅用于TYPO3 Flow框架的依赖注入。这些应由框架进行覆盖,并在代码覆盖率中也忽略。
功能测试需要solr服务器!在我看来,单元测试比功能测试更有用。
功能测试目前不合适,TYPO3 Flow框架的最后更改几乎使以100%覆盖率覆盖代码变得不可能。在forge中已经为修复此问题创建了一个问题。
https://forge.typo3.org/issues/46974
为什么是这个命名空间?
到目前为止,这只是一个我在业余时间制作的非公司项目。我选择这个命名空间参加公司内部的竞赛。
许可证
这属于TYPO3 Flow包中的"TechDivision.Search"。
这是一款自由软件;您可以在GNU通用公共许可证的条款下重新分发或修改它,许可证版本可以是第3版或(根据您的选择)任何更新的版本。
版权(C)2013 Matthias Witte http://www.matthias-witte.net