Commit graph

174 commits

Author SHA1 Message Date
ee3987a746
Merge branch 'develop' into support/76
Conflicts:
    Classes/DataProcessing/ProcessorInterface.php
    Classes/Domain/Index/AbstractIndexer.php
    Classes/Integration/Form/Finisher/DataHandlerFinisher.php
    Makefile
    Tests/Functional/Connection/Elasticsearch/FilterTest.php
    Tests/Functional/Fixtures/BasicSetup.ts
    Tests/Unit/Integration/Form/Finisher/DataHandlerFinisherTest.php
    composer.json
2018-03-08 11:58:31 +01:00
7b336f3fa5
Merge branch 'develop' into feature/119-allow-range-queries-for-elasticsearch 2018-03-08 09:27:58 +01:00
88f301f228
FEATURE: Allow range queries for elasticsearch
Allow "raw" configuration and support "range" type.

Also prevent adding boosts if no search term was submitted which can be
boosted.

Resolves: #119
2018-03-06 16:42:22 +01:00
6544ec07d3
FEATURE: Support display name for facet option
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.
2018-03-06 16:41:54 +01:00
3731bcf474
TASK: Fix CGL 2018-03-06 16:39:07 +01:00
6ac2680211
Merge pull request #101 from Codappix/feature/phpcs-travis
Feature: Run phpcs on travis
2018-03-06 15:11:46 +01:00
fa2b11f276
Merge pull request #123 from Codappix/feature/118-dataprocessor-adapter
FEATURE: 118 dataprocessor adapter
2018-03-06 14:02:10 +01:00
951edf3871
Merge pull request #122 from Codappix/feature/116-execute-dataprocessor-on-result
FEATURE: 116 execute dataprocessor on result
2018-03-06 13:47:35 +01:00
ae51de9041
Merge remote-tracking branch 'origin/develop' into feature/phpcs-travis
Conflicts:
    Classes/Hook/DataHandler.php
2018-03-06 13:17:29 +01:00
5d1e7c41bc
!!!|FEATURE: Pass facet configuration to search service
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
2018-03-06 12:05:32 +01:00
04aaad12fe
FEATURE: Provide ContentObjectDataProcessorAdapterProcessor
Allow integrator to execute any existing data processor for content
objects.

Resolves: #118
2018-03-06 11:16:00 +01:00
cf91251be3
TASK :Add tests for SearchRequest
Make sure exceptions with helpful messages are thrown if one object is
missing when execute is called.

Also make sure the expected methods are called.
2018-03-06 09:36:39 +01:00
79aba3c544
TASK: Add test cases for ResultItem Model
Check whether all methods work as expected.

E.g. we can retrieve data in all ways, but not change anything.
2018-03-06 09:19:09 +01:00
769fb8237b
TASK: Add data processing to search result
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.
2018-03-06 09:04:47 +01:00
2998c43ba8
TASK: Refactor data processing
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
2018-03-01 08:03:51 +01:00
350f8a52b6
FEATURE: Use extbase for processor instantiation
This way injects will be resolved inside of processors, enabling
developers to inject dependencies.

We use inject instead of constructor as indexers mostly will change the
constructor and should not need to add the objectmanager.

Resolves: #117
2018-02-27 14:47:22 +01:00
fef2bdac89
Merge pull request #115 from Codappix/feature/112-resolve-relations-for-new-records
BUGFIX: Allow indexing of new records with their relations
2018-02-23 10:20:58 +01:00
47b3282034
BUGFIX: Allow indexing of new records with their relations
Relations were inserted by TYPO3's DataHandler after indexing and were
therefore not indexed.

We now use a later hook after DataHandler has finished everything, so we
know that we can index. As it's not relevant, we do not differentiate
between add and update anymore, as both trigger "indexDocument" internal.

Resolves: #112
2018-02-22 22:14:44 +01:00
ebaeaf4c92
TASK: Support PHP 7.0
As some (e.g. debian) do not provide PHP 7.1 and we did not use so much
features which were introduced in PHP 7.1, we add support for PHP 7.0.
2018-02-22 21:59:13 +01:00
a4150956e9
Merge remote-tracking branch 'origin/feature/merge-with-features' into support/76 2018-02-20 10:11:21 +01:00
a5b35c54d9
TASK: Remove data processing from tca table service
This is not the place to be.
Data processing during indexing happens in abstract indexer for all
indexers that make use of it. It's more generic then to TCA.
2018-01-30 20:54:41 +01:00
810439cc80
Merge remote-tracking branch 'origin/support/76' into feature/merge-with-features
Conflicts:
    Classes/Domain/Index/TcaIndexer/TcaTableService.php
    Classes/Domain/Search/QueryFactory.php
    Tests/Functional/Connection/Elasticsearch/IndexTcaTableTest.php
    Tests/Functional/Hooks/DataHandler/ProcessesAllowedTablesTest.php
    Tests/Unit/Domain/Search/QueryFactoryTest.php
2018-01-30 20:22:09 +01:00
Justus Moroni
c994a32ac1 BUGFIX: Make BackendUtility usable in frontend
BackendUtility used LanguageService which only works
in the backend.
Extend BackendUtility and use TSFE instead.
2018-01-29 22:49:29 +01:00
a998f155c1
TASK: Refactor common code base 2017-12-12 11:34:38 +01:00
6423f510e2
!!!|BUGFIX: Index media field of pages as relation uids
Always index media field of pages as array.
Index reference_uids for files.
2017-12-12 11:26:46 +01:00
02ef86b67b
FEATURE: Provide new feature to configure fields to search in
This enables you to search only in some fields.
Also if some fields contain mapping, you can add them in addition to
e.g. `_all`.
2017-11-29 18:57:09 +01:00
Willi Wehmeier
cd391abf10 [BUGFIX] reset array_keys for record media 2017-11-28 12:09:11 +01:00
b7b783a7fe
TASK: Use Code Sniffer at travis
This way we need no external service.
Each developer can fully run all tests and cgl on local environment.
Also this integrated better into IDEs and editors.
2017-11-11 16:52:02 +01:00
689d8f0c53
Merge pull request #96 from Codappix/feature/refactor-dataprocessing
!!!|FEATURE: Make data processing available to all indexer
2017-11-10 22:05:49 +01:00
7472cab660
Merge pull request #98 from Codappix/feature/provide-form-finisher
FEATURE: Provide form finisher for integration into form extension
2017-11-10 22:05:34 +01:00
03d4d7493c
Merge pull request #99 from Codappix/feature/provide-index-deletion-command
FEATURE: Provide command to delete whole index
2017-11-10 22:05:02 +01:00
0815eaff6b
BUGFIX: Remove records during update if no longer available
E.g. update is to deactivate a record. In this case we will not be able
to update the record but should delete him instead.
2017-11-10 13:48:53 +01:00
a3a46f5cb5
FEATURE: Provide command to delete whole index
This is necessary, e.g. for complete re-indexing.
2017-11-10 13:22:15 +01:00
31202f8882
FEATURE: Provide form finisher for integration into form extension
Provide a finisher, working as a proxy, to internal data handler, which
is already used for Hooks in TYPO3 backend.
2017-11-10 12:31:06 +01:00
e1a14b2f04
!!!|FEATURE: Make data processing available to all indexer
Before data processing was applied for TCA only, through tca table
service.
Now it's applied much later in process and in abstract indexer.
Therefore all indexer will run data processing if configured.
2017-11-08 21:05:53 +01:00
379dddf8ac
BUGFIX: Also remove fields containing "null" 2017-11-08 20:36:04 +01:00
0159315183
FEATURE: Add data processor to remove fields for indexing
Add a new processor, with docs and tests, to allow removal of fields
before sending them to search service like elasticsearch.

E.g. remove sensitive information that should not be available.
2017-11-08 20:20:37 +01:00
43ec410eb5
Merge pull request #93 from Codappix/hotfix/allow-empty-filter
BUGFIX: Do not remove submitted filter if configured one is empty
2017-11-02 22:41:20 +01:00
8206a1ec59
BUGFIX: Do not remove submitted filter if configured one is empty
This will be the case if you add a flexform to the plugin with no value.
Then an empty filter is configured and you will not be able to submit a
value for this filter.
2017-10-29 17:08:33 +01:00
c38f7b9d6a
TASK: Move configuration logic into own class
Also add tests for new code.
2017-10-29 13:44:17 +01:00
bf91c4a5ba
TASK: Allow fields and sorting to contain a condition
This way integrators can configure when the sorting and fields should be
added.
2017-10-29 12:25:25 +01:00
d937266bf5 Merge remote-tracking branch 'origin/develop' into feature/geo-search 2017-10-29 11:41:43 +01:00
86d02f7b8d
TASK: Allow integrators to use GET with minimal overhead
Allow to map search request even if no trusted properties exist.
Also cache initial call to plugin.

This allows to use GET as submit for forms with minimal arguments in
URL.
2017-10-26 10:05:32 +02:00
Willi Wehmeier
a05bf09e19 FIX: get correct RelationResolver class of support/76 branch 2017-10-25 11:48:35 +02:00
7ca998c03a
TASK: Fix PR issues 2017-10-24 14:06:56 +02:00
07a4fec622
WIP|FEATURE: Allow fields and sorting to be configurable 2017-10-23 16:35:38 +02:00
b1f81c0d3b
WIP|FEATURE: Add field and sorting
Sort result by distance and provide distance to result items.
2017-10-22 17:51:04 +02:00
8d343ee97f
FEATURE: Finish filter configuration for geo_search 2017-10-22 17:34:48 +02:00
636ef78a14
WIP|TASK: Remove sort and add filter
As we filter for distance and do not sort.
2017-10-22 11:23:28 +02:00
e1764dca13
FEATURE: Add GeoPoint Processor
Document data processors.
Add test for new data processor.
2017-10-20 16:36:26 +02:00