With V6 of elasticsearch the meaning / handling of index and type has
changed, and it will change further in the future.
We therefore move code to own classes and adjust / refactor calling
code.
* Streamline all commands to always accept a comma separated list of
identifiers.
* Adjust phpdoc to reflect this feature and provide help on CLI.
* Refactor code to move recurring logic to own method.
* Provide tests for new feature.
* Add documentation for feature.
The configured filter is no longer filtered, it's up to the integrator
to provide proper configuration. Therefore `0` is now a valid and
respected filter value.
Resolves: #163
Instead of hardcoding and tight coupling of relation resolving, we now
provide a dataprocessor instead.
Therefore you need to configure resolving for each indexed type.
This resolves#149 and #147.
Before this change, sys_language_uid was indexed as an empty string, due
to internal used TYPO3 API.
We now skip the configure field which defines language uid. This way you
can build filter based on current language.
Resolves#148
If some issues occur outside of our extension, we might not get a valid
uid inside of our hooks. We will therefore add additional checks and
prevent any further execution.
Resolves: #112
Fetch sys_language_uid from database.
Until now we did not fetch system related fields from database. As there
is now a RemoveProcessor, integrators are able to remove fields.
Also providing this field enables basic multi language support.
Relates: #25
We use the cache clear hook to index pages whenever the cache was
cleared.
This makes it possible to cover some cases like changing content on a
page. But also if an integrator configures to clear additional pages.
This is limited as we can not handle cache tags at the moment.
Resolves: #131
As some search services, like elasticsearch, allow generation of a
string that should be displayed in frontend, we provide a new getter for
that.
The old existing name can be a fallback in custom implementations.
Do not limit integrator in possibilities to configure.
Therefore previously configure facets for a field need to be adjusted to
contain full configuration for elasticsearch. See changelog.
Resolves: #120
Search results are now processed through data processing by search
service. The result will be a SearchResult model from our domain. Also
SearchResult will execute new queries, e.g. from paginate widget,
through SearchService to apply data processing again.
Remove duplicate stub code to trait, to keep own logic and code clean.
Use own service to handle data processing. Classes like indexer should
not know anything about the structure and how to process the data.
Also rename record to data, as we can process just any data in form of
an array.
Relates: #116