flowpack/simplesearch-contentrepositoryadaptor

Last activity on 5 May 2021
  • 23
  • 26
  • 13535
composer require flowpack/simplesearch-contentrepositoryadaptor

Implements a bridge to search in Neos CR via the flowpack/simplesearch package.

4.0.0

Implements a bridge to search in Neos CR via the flowpack/simplesearch package.

Version
4.0.0
Type
neos-package
Release Date
31.05.2021 14:40:23
Source
git
Distribution
zip
Requires
Requires (dev)
None
Suggest
None
Provides
None
Conflicts
None
Replaces
None
MIT 901f6ab8086b9409e7c1c554a5dfcd16d768d273

SensioLabs Insight Code Climate

SimpleSearch ContentRepositoryAdaptor

A search for the Neos Content Repository based on the SimpleSearch. This package is an implementation of the Neos.ContentRepository.Search API.

Usage is pretty easy. Install this (and Flowpack.SimpleSearch will follow).

Run the command:

./flow nodeindex:build

After that use the "Search" helper in EEL or the QueryBuilder in PHP to query the index.

With a few hundred nodes queries should be answered in a few milliseconds max. My biggest test so far was with around 23000 nodes which still got me reasonable query times of about 300ms. If you have more Nodes to index you should probably consider using a "real" search engine like ElasticSearch.

Using MySQL

To use MySQL, switch the implementation for the interfaces in your Objects.yaml and configure the DB connection as needed:

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%'

The arguments are the index identifier (can be chosen freely) and the DSN.

The content of the readme is provided by Github
The same vendor provides 53 package(s).