2016-12-15 17:59:13 +01:00
|
|
|
.. _concepts:
|
|
|
|
|
|
|
|
Concepts
|
|
|
|
========
|
|
|
|
|
2018-03-08 08:17:41 +01:00
|
|
|
The main concept is to provide a foundation where other developers can profit from, to provide
|
2018-12-30 15:03:10 +01:00
|
|
|
integrations into search services like Elasticsearch, Algolia, …. But also to provide
|
|
|
|
an ETL Framework.
|
2018-03-08 08:17:41 +01:00
|
|
|
|
|
|
|
Our code contains the following concepts which should be understand:
|
2016-12-15 17:59:13 +01:00
|
|
|
|
|
|
|
.. _concepts_connections:
|
|
|
|
|
|
|
|
Connections
|
|
|
|
-----------
|
|
|
|
|
2018-03-08 08:17:41 +01:00
|
|
|
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.
|
2016-12-15 17:59:13 +01:00
|
|
|
|
2018-03-08 08:17:41 +01:00
|
|
|
For information about implementing a new connection, take a look at :ref:`development_connection`.
|
2016-12-15 17:59:13 +01:00
|
|
|
|
2018-12-30 15:03:10 +01:00
|
|
|
These are equivalent to "Load" of ETL while "indexing", and equivalent to
|
|
|
|
"Extraction" in frontend mode.
|
|
|
|
|
2016-12-15 17:59:13 +01:00
|
|
|
.. _concepts_indexing:
|
|
|
|
|
|
|
|
Indexing
|
|
|
|
--------
|
|
|
|
|
2018-03-08 08:17:41 +01:00
|
|
|
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 :ref:`TcaIndexer` and :ref:`PagesIndexer` are provided.
|
2016-12-15 17:59:13 +01:00
|
|
|
|
2018-03-08 08:17:41 +01:00
|
|
|
For information about implementing a new indexer, take a look at :ref:`development_indexer`.
|
2017-10-14 13:02:48 +02:00
|
|
|
|
2018-12-30 15:03:10 +01:00
|
|
|
This is the process of "loading" data inside the ETL.
|
|
|
|
|
2018-03-08 08:17:41 +01:00
|
|
|
.. _concepts_dataprocessing:
|
2017-10-14 13:02:48 +02:00
|
|
|
|
|
|
|
DataProcessing
|
|
|
|
^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
Before data is transfered to search service, it can be processed by "DataProcessors" like already
|
|
|
|
known by :ref:`t3tsref:cobj-fluidtemplate-properties-dataprocessing` of :ref:`t3tsref:cobj-fluidtemplate`.
|
2018-03-06 10:47:14 +01:00
|
|
|
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.
|
2017-10-14 13:02:48 +02:00
|
|
|
|
2018-03-08 08:17:41 +01:00
|
|
|
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 :ref:`dataprocessors`.
|
|
|
|
|
|
|
|
For information about implementing a new DataProcessor, take a look at :ref:`development_dataprocessor`.
|
2018-12-30 15:03:10 +01:00
|
|
|
|
|
|
|
This is the "transforming" step of ETL.
|