search_core/Documentation/source/concepts.rst

2 KiB

Concepts

The main concept is to provide a foundation where other developers can profit from, to provide integrations into search services like Elasticsearch, Algolia, …. But also to provide an ETL Framework.

Our code contains the following concepts which should be understand:

Connections

Different search services can provide integrations. search_core only provides abstractions and interfaces. The main purpose is to provide a stable API between TYPO3 and concrete connection.

For information about implementing a new connection, take a look at development_connection.

These are equivalent to "Load" of ETL while "indexing", and equivalent to "Extraction" in frontend mode.

Indexing

Indexing is the process of collecting and preparing data, before sending it to a Connection. The indexing is done by one of the available indexer. Indexer are identified by a key, as configured in TypoScript.

Currently TcaIndexer and PagesIndexer are provided.

For information about implementing a new indexer, take a look at development_indexer.

This is the process of "loading" data inside the ETL.

DataProcessing

Before data is transfered to search service, it can be processed by "DataProcessors" like already known by t3tsref:cobj-fluidtemplate-properties-dataprocessing of t3tsref:cobj-fluidtemplate. The same is true for retrieved search results. They can be processed again by "DataProcessors" to prepare data for display in Templates or further usage.

This should keep indexers simple and move logic to DataProcessors. This makes most parts highly flexible as integrators are able to configure DataProcessors and change their order.

Configuration is done through TypoScript, see dataprocessors.

For information about implementing a new DataProcessor, take a look at development_dataprocessor.

This is the "transforming" step of ETL.