Skip to content

Commit bfb4a6b

Browse files
lukmzigjdreesen
andauthored
[WIP] Add support for elasticsearch and openSearch (#239)
* feat: add first implementation of common search adapter * Apply php-cs-fixer changes * update dependencies * Update src/DependencyInjection/PimcoreGenericDataIndexExtension.php Co-authored-by: Jacob Dreesen <[email protected]> * add some more cleanup * fix: sonar * Apply php-cs-fixer changes * update tests * Apply php-cs-fixer changes * update tests * update tests * update tests * update tests * Apply php-cs-fixer changes * update tests * re-enable all tests * split workflows * update test method names * update test workflow names * fix: re-enable tests * [WIP] Add support for elasticsearch and openSearch - docs and namespaces (#254) * add new namespaces and update docs * rename and deprecate opensearch namespaces and adapt the docs * remove error * fix some sonar issues * fix some sonar issues * fix docs typo * Apply php-cs-fixer changes * fix STAN * fix aliases * fix ignore some STAN errors * fix ignore some STAN errors --------- Co-authored-by: lukmzig <[email protected]> Co-authored-by: Jacob Dreesen <[email protected]>
1 parent e95dc85 commit bfb4a6b

File tree

253 files changed

+3300
-1005
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

253 files changed

+3300
-1005
lines changed

.github/ci/files/config/packages/test/config.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,15 @@ pimcore_open_search_client:
3636
default:
3737
hosts: ['%env(PIMCORE_OPEN_SEARCH_HOST)%']
3838

39+
pimcore_elasticsearch_client:
40+
es_clients:
41+
default:
42+
hosts: ['%env(PIMCORE_ELASTIC_SEARCH_HOST)%']
43+
username: 'elastic'
44+
password: 'somethingsecret'
45+
logger_channel: 'pimcore.elasicsearch'
46+
ssl_verification: false
47+
3948
pimcore:
4049
assets:
4150
metadata:

.github/ci/files/config/services_test.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ services:
1313
class: Pimcore\Tests\Support\Helper\DataType\Calculator
1414

1515
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\Search\LocateInTreeServiceInterface:
16-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Search\LocateInTreeService
16+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\LocateInTreeService
1717
public: true
1818

1919
Pimcore\Bundle\GenericDataIndexBundle\Service\Search\SearchService\SearchResultIdListServiceInterface:

.github/ci/scripts/setup-pimcore-environment-functional-tests.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,11 @@
22

33
.github/ci/scripts/setup-pimcore-environment.sh
44

5+
# Add Elasticsearch config if specified
6+
if [ "$1" == "elasticsearch" ]; then
7+
CONFIG_FILE_PATH="config/packages/test/config.yaml"
8+
echo -e "\n# Added by functional test script\npimcore_generic_data_index:\n index_service:\n client_params:\n client_type: 'elasticsearch'" >> "$CONFIG_FILE_PATH"
9+
fi
10+
511
cp .github/ci/files/composer.json .
612
cp bundles/pimcore/generic-data-index-bundle/codeception.dist.yml .
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
name: "Codeception Tests with Elasticsearch"
2+
3+
on:
4+
# Enable Later.
5+
#schedule:
6+
# - cron: '0 3 * * 1,3,5'
7+
pull_request:
8+
branches:
9+
- "[0-9]+.[0-9]+"
10+
- "[0-9]+.x"
11+
- "feature-*"
12+
push:
13+
branches:
14+
- "[0-9]+.[0-9]+"
15+
- "[0-9]+.x"
16+
17+
env:
18+
PIMCORE_PROJECT_ROOT: ${{ github.workspace }}
19+
APP_ENV: test
20+
PIMCORE_TEST: 1
21+
PIMCORE_TEST_DB_DSN: "mysql://[email protected]:33006/pimcore_test"
22+
PIMCORE_ELASTIC_SEARCH_HOST: "localhost:5300"
23+
CODECEPTION_BUNDLE_PATH: "bundles/pimcore/generic-data-index-bundle/"
24+
25+
jobs:
26+
codeception-tests:
27+
name: "Codeception tests"
28+
runs-on: "ubuntu-20.04"
29+
continue-on-error: ${{ matrix.experimental }}
30+
strategy:
31+
matrix:
32+
include:
33+
- { php-version: "8.3", dependencies: "highest", pimcore_version: "11.x-dev as 11.99.9", experimental: true, search_engine: "elasticsearch"}
34+
35+
services:
36+
mariadb:
37+
image: "mariadb:10.11"
38+
ports:
39+
- 33006:3306
40+
env:
41+
MYSQL_ALLOW_EMPTY_PASSWORD: yes
42+
43+
elastic:
44+
image: elasticsearch:8.5.3
45+
ports:
46+
- 5300:9200
47+
env:
48+
discovery.type: "single-node"
49+
ES_JAVA_OPTS: "-Xms1g -Xmx1g"
50+
xpack.security.enabled: "true"
51+
xpack.security.authc.anonymous.roles: "superuser,kibana_admin,kibana_system,kibana_user"
52+
ELASTIC_USERNAME: "elastic"
53+
ELASTIC_PASSWORD: "somethingsecret"
54+
55+
steps:
56+
- name: "Checkout code"
57+
uses: "actions/checkout@v2"
58+
with:
59+
path: "bundles/pimcore/generic-data-index-bundle"
60+
61+
- name: "Copy .github directory"
62+
env:
63+
REQUIRE_ADMIN_BUNDLE: "${{ matrix.require_admin_bundle }}"
64+
run: |
65+
cp -R bundles/pimcore/generic-data-index-bundle/.github .github
66+
67+
- name: "Install PHP"
68+
uses: "shivammathur/setup-php@v2"
69+
with:
70+
coverage: xdebug
71+
ini-values: display_errors=On, display_startup_errors=On, error_reporting=32767
72+
php-version: "${{ matrix.php-version }}"
73+
74+
- name: Verify MariaDB connection
75+
run: |
76+
cp .github/ci/files/.my.cnf ~/.my.cnf
77+
while ! mysqladmin ping --silent; do
78+
sleep 1
79+
done
80+
81+
- name: "Setup Pimcore environment"
82+
env:
83+
REQUIRE_ADMIN_BUNDLE: "${{ matrix.require_admin_bundle }}"
84+
run: |
85+
mysql -e "CREATE DATABASE pimcore_test CHARSET=utf8mb4;"
86+
cp -R bundles/pimcore/generic-data-index-bundle/tests tests
87+
mkdir src
88+
chmod 755 .github/ci/scripts/setup-pimcore-environment-functional-tests.sh
89+
.github/ci/scripts/setup-pimcore-environment-functional-tests.sh "${{ matrix.search_engine }}"
90+
91+
- name: "Wait for Elasticsearch to be up"
92+
run: |
93+
if [ "${{ matrix.search_engine }}" == "elasticsearch" ]; then
94+
echo "Waiting for Elasticsearch to be ready..."
95+
until curl -s -u elastic:somethingsecret http://localhost:5300/_cluster/health | grep -q '"status":"green"'; do
96+
echo "Waiting... Elasticsearch is not yet available."
97+
sleep 5
98+
done
99+
echo "Elasticsearch is up and running!"
100+
else
101+
echo "Using OpenSearch for testing, skipping Elasticsearch wait."
102+
fi
103+
104+
- name: "Update Pimcore version"
105+
env:
106+
PIMCORE_VERSION: "${{ matrix.pimcore_version }}"
107+
run: |
108+
if [ ! -z "$PIMCORE_VERSION" ]; then
109+
composer require --no-update pimcore/pimcore:"${PIMCORE_VERSION}"
110+
fi
111+
112+
- name: "Install dependencies with Composer"
113+
uses: "ramsey/composer-install@v2"
114+
with:
115+
dependency-versions: "${{ matrix.dependencies }}"
116+
117+
- name: "Run Codeception"
118+
run: |
119+
vendor/bin/codecept run -c . -vvv --xml --coverage-xml

.github/workflows/codeception.yaml renamed to .github/workflows/open-search-codeception.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: "Codeception Tests"
1+
name: "Codeception Tests with OpenSearch"
22

33
on:
44
# Enable Later.
@@ -30,9 +30,9 @@ jobs:
3030
strategy:
3131
matrix:
3232
include:
33-
- { php-version: "8.2", dependencies: "lowest", pimcore_version: "", experimental: false }
34-
- { php-version: "8.3", dependencies: "highest", pimcore_version: "", experimental: false }
35-
- { php-version: "8.3", dependencies: "highest", pimcore_version: "11.x-dev as 11.99.9", experimental: true }
33+
- { php-version: "8.2", dependencies: "lowest", pimcore_version: "", experimental: false, search_engine: "openSearch" }
34+
- { php-version: "8.3", dependencies: "highest", pimcore_version: "", experimental: false, search_engine: "openSearch"}
35+
- { php-version: "8.3", dependencies: "highest", pimcore_version: "11.x-dev as 11.99.9", experimental: true, search_engine: "openSearch"}
3636

3737
services:
3838
mariadb:
@@ -89,7 +89,7 @@ jobs:
8989
cp -R bundles/pimcore/generic-data-index-bundle/tests tests
9090
mkdir src
9191
chmod 755 .github/ci/scripts/setup-pimcore-environment-functional-tests.sh
92-
.github/ci/scripts/setup-pimcore-environment-functional-tests.sh
92+
.github/ci/scripts/setup-pimcore-environment-functional-tests.sh "${{ matrix.search_engine }}"
9393
9494
- name: "Update Pimcore version"
9595
env:

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ title: Generic Data Index
44

55
# Pimcore Generic Data Index
66

7-
The Pimcore Generic Data Index Bundle provides a centralized way to index and search assets and data objects in Pimcore via OpenSearch indices.
8-
It is shipped with the OpenSearch client and provides a central configuration for it in order to be used in other bundles.
7+
The Pimcore Generic Data Index Bundle provides a centralized way to index and search elements (assets, data objects and documents) in Pimcore via indices (e.g OpenSearch, Elasticsearch).
8+
It is shipped with the OpenSearch and Elasticsearch clients and provides a central configuration for them in order to be used in other bundles.
99
This bundle can be extended and customized to fit your specific needs, for example if you would like to extend the search indices with custom attributes.
1010

1111
## Features in a Nutshell
12-
- Based on OpenSearch
12+
- Based on OpenSearch/Elasticsearch
1313
- Centralized data index for multiple bundles (Portal Engine, Studio API/UI, etc.)
1414
- Indexing of all documents, assets and data objects
15-
- Provides search services and models to search, filter and aggregate the data saved in the OpenSearch indices
15+
- Provides search services and models to search, filter and aggregate the data saved in the search indices
1616

1717
## Documentation Overview
1818
- [Installation](./doc/01_Installation/README.md)

composer.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@
1818
"minimum-stability": "dev",
1919
"require": {
2020
"php": "~8.2.0 || ~8.3.0 ",
21-
"pimcore/pimcore": "^11.3.0",
21+
"pimcore/pimcore": "^11.x-dev",
2222
"pimcore/static-resolver-bundle": "^1.4.0",
23-
"pimcore/opensearch-client": "^1.0.0",
23+
"pimcore/opensearch-client": "^1.x-dev",
24+
"pimcore/elasticsearch-client": "^1.x-dev",
2425
"doctrine/orm": "^2.17.2",
2526
"symfony/scheduler": "^6.4",
2627
"symfony/messenger": "^6.4"
@@ -42,7 +43,10 @@
4243
"autoload": {
4344
"psr-4": {
4445
"Pimcore\\Bundle\\GenericDataIndexBundle\\": "src/"
45-
}
46+
},
47+
"files": [
48+
"src/autoload.php"
49+
]
4650
},
4751
"autoload-dev": {
4852
"psr-4": {
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,79 @@
11
imports:
2-
- { resource: 'services/search-index-adapter/open-search/modifiers/*' }
3-
- { resource: 'services/search-index-adapter/open-search/pql-field-name-transformers.yaml' }
2+
- { resource: 'services/search-index-adapter/default-search/modifiers/*' }
3+
- { resource: 'services/search-index-adapter/default-search/pql-field-name-transformers.yaml' }
44

55
services:
66
_defaults:
77
autowire: true
88
autoconfigure: true
99
public: false
10-
10+
1111
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\SearchIndexServiceInterface:
12-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\OpenSearchService
12+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DefaultSearchService
1313
arguments:
14-
$openSearchClient: '@generic-data-index.opensearch-client'
14+
$client: '@generic-data-index.search-client'
1515

1616
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\IndexAliasServiceInterface:
17-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\IndexAliasService
17+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\IndexAliasService
1818
arguments:
19-
$openSearchClient: '@generic-data-index.opensearch-client'
19+
$client: '@generic-data-index.search-client'
2020

21-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Search\SearchExecutionServiceInterface:
22-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Search\SearchExecutionService
21+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\SearchExecutionServiceInterface:
22+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\SearchExecutionService
2323
arguments:
24-
$openSearchClient: '@generic-data-index.opensearch-client'
24+
$client: '@generic-data-index.search-client'
2525

2626
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\BulkOperationServiceInterface:
27-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\BulkOperationService
27+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\BulkOperationService
2828
arguments:
29-
$openSearchClient: '@generic-data-index.opensearch-client'
29+
$client: '@generic-data-index.search-client'
3030

3131
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\PathServiceInterface:
32-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\PathService
32+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\PathService
3333
arguments:
34-
$openSearchClient: '@generic-data-index.opensearch-client'
34+
$client: '@generic-data-index.search-client'
3535

3636
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\Search\Pagination\PaginationInfoServiceInterface:
37-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Search\Pagination\PaginationInfoService
37+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Pagination\PaginationInfoService
3838

3939
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\Search\LocateInTreeServiceInterface:
40-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Search\LocateInTreeService
40+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\LocateInTreeService
4141

4242
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\Search\FetchIdsServiceInterface:
43-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Search\FetchIdsService
43+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\FetchIdsService
4444

45-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Search\FetchIdsBySearchServiceInterface:
46-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Search\FetchIdsBySearchService
45+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\FetchIdsBySearchServiceInterface:
46+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\FetchIdsBySearchService
4747

48-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\MappingAnalyzerServiceInterface:
49-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\MappingAnalyzerService
48+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\MappingAnalyzerServiceInterface:
49+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\MappingAnalyzerService
5050

5151
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\IndexStatsServiceInterface:
52-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\IndexStatsService
52+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\IndexStatsService
5353
arguments:
54-
$openSearchClient: '@generic-data-index.opensearch-client'
54+
$client: '@generic-data-index.search-client'
5555

5656
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\IndexMappingServiceInterface:
57-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\IndexMappingService
57+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\IndexMappingService
5858

5959
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\Workspace\QueryServiceInterface:
60-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Workspace\QueryService
60+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Workspace\QueryService
6161

6262
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\Workspace\ElementWorkspacesQueryServiceInterface:
63-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Workspace\ElementWorkspacesQueryService
63+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Workspace\ElementWorkspacesQueryService
6464

6565
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\QueryLanguage\PqlAdapterInterface:
66-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\PqlAdapter
66+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\PqlAdapter
6767

68-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\SubQueriesProcessorInterface:
69-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\SubQueriesProcessor
68+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\SubQueriesProcessorInterface:
69+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\SubQueriesProcessor
7070

7171

72-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\FieldNameValidator\:
73-
resource: '../../../src/SearchIndexAdapter/OpenSearch/QueryLanguage/FieldNameValidator'
72+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\FieldNameValidator\:
73+
resource: '../../../src/SearchIndexAdapter/DefaultSearch/QueryLanguage/FieldNameValidator'
7474
tags: ['pimcore.generic_data_index.pql_field_name_validator']
7575

7676
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DataObject\IndexIconUpdateServiceInterface:
77-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\DataObject\IndexIconUpdateService
77+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DataObject\IndexIconUpdateService
7878
arguments:
79-
$openSearchClient: '@generic-data-index.opensearch-client'
79+
$client: '@generic-data-index.search-client'

config/services/search-index-adapter/open-search/modifiers/modifier-service.yaml renamed to config/services/search-index-adapter/default-search/modifiers/modifier-service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ services:
55
public: false
66

77
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\Search\Modifier\SearchModifierServiceInterface:
8-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Search\Modifier\SearchModifierService
8+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\SearchModifierService
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
autoconfigure: true
5+
public: false
6+
7+
8+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Aggregation\AssetAggregations: ~
9+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Aggregation\TreeAggregations: ~
10+
11+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Filter\BasicFilters: ~
12+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Filter\AssetFilters: ~
13+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Filter\TreeFilters: ~
14+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Filter\DependencyFilters: ~
15+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Filter\FieldTypeFilters: ~
16+
17+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\FullTextSearch\FullTextSearchHandlers: ~
18+
19+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Sort\TreeSortHandlers: ~
20+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Sort\OrderByFieldsHandlers: ~
21+
22+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\QueryLanguage\QueryLanguageHandlers: ~
23+
24+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Search\Modifier\Filter\Workspace\WorkspaceQueryHandler: ~

0 commit comments

Comments
 (0)