flowpack / simplesearch
使用 sqlite3 或 MySQL 作为存储后端的简单 PHP 搜索引擎。
5.0.1
2022-03-29 16:26 UTC
Requires
- neos/flow: ^5.0 || ^6.0 || ^7.0 || ^8.0 || dev-master
README
Flowpack.SimpleSearch
这是一个基于 SQLite 或 MySQL 的简单 PHP 搜索引擎。性能尚可,但随着条目数量的增加会迅速下降。根据您要执行的查询,合理的上限大约在 50,000 个条目左右(对于 SQLite)。
此包对任何东西没有硬依赖,因此可以用于任何项目。
代码和 API 仍然相当粗糙。我只是实现了最低版本。将会有一个更高层次的查询 API(参见 ContentRepositoryAdaptor 的方向)。
如果您查看代码,属性在 sqlite 存储中看起来非常奇怪,但与 SQLite3 一起,实际的存储类型是按行确定的,因此一个列可以包含不同数据类型的不同行。这应该使得所有那些空行更易于接受。毕竟,我们在这里试图模拟一个文档数据库。
使用 MySQL
要使用 MySQL,切换您 Objects.yaml
中的接口实现,并按需配置数据库连接。
Flowpack\SimpleSearch\Domain\Service\IndexInterface:
className: 'Flowpack\SimpleSearch\Domain\Service\MysqlIndex'
Neos\ContentRepository\Search\Search\QueryBuilderInterface:
className: 'Flowpack\SimpleSearch\ContentRepositoryAdaptor\Search\MysqlQueryBuilder'
Flowpack\SimpleSearch\Domain\Service\MysqlIndex:
arguments:
1:
value: 'Neos_CR'
2:
value: 'mysql:host=%env:DATABASE_HOST%;dbname=%env:DATABASE_NAME%;charset=utf8mb4'
properties:
username:
value: '%env:DATABASE_USERNAME%'
password:
value: '%env:DATABASE_PASSWORD%'
arguments
是索引标识符(可以自由选择)和 DSN。