flowpack/simplesearch

使用 sqlite3 或 MySQL 作为存储后端的简单 PHP 搜索引擎。

安装次数: 24,016

依赖项: 1

建议者: 0

安全性: 0

星标: 22

关注者: 5

分支: 14

开放问题: 3

类型:neos-package

5.0.1 2022-03-29 16:26 UTC

This package is auto-updated.

Last update: 2024-08-29 03:29:17 UTC


README

SensioLabs Insight Code Climate

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。