flowpack/simplesearch-contentrepositoryadaptor

实现了通过 flowpack/simplesearch 包在 Neos CR 中搜索的桥梁。

4.0.3 2023-05-15 06:35 UTC

README

SensioLabs Insight Code Climate

SimpleSearch ContentRepositoryAdaptor

基于 SimpleSearch 的 Neos 内容库搜索。本包是 Neos.ContentRepository.Search API 的实现。

使用非常简单。安装此包(Flowpack.SimpleSearch 将自动安装)。

运行以下命令

./flow nodeindex:build

之后,可以使用 EEL 中的 "Search" 助手或 PHP 中的 QueryBuilder 查询索引。

对于几百个节点,查询应该在几毫秒内完成。目前为止,我的最大测试是在大约 23000 个节点上,查询时间合理,约为 300ms。如果您有更多需要索引的节点,您可能需要考虑使用如 ElasticSearch 这样的 "真实" 搜索引擎。

使用 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。