Skip to content

Commit a882c63

Browse files
authored
[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
1 parent 0e0a4e2 commit a882c63

File tree

236 files changed

+2612
-577
lines changed

Some content is hidden

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

236 files changed

+2612
-577
lines changed

.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:

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: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@
4343
"autoload": {
4444
"psr-4": {
4545
"Pimcore\\Bundle\\GenericDataIndexBundle\\": "src/"
46-
}
46+
},
47+
"files": [
48+
"src/autoload.php"
49+
]
4750
},
4851
"autoload-dev": {
4952
"psr-4": {
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
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:
@@ -9,71 +9,71 @@ services:
99
public: false
1010

1111
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\SearchIndexServiceInterface:
12-
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\OpenSearchService
12+
class: Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\DefaultSearchService
1313
arguments:
1414
$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:
1919
$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:
2424
$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:
2929
$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:
3434
$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:
5454
$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:
7979
$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: ~

config/services/search-index-adapter/open-search/pql-field-name-transformers.yaml renamed to config/services/search-index-adapter/default-search/pql-field-name-transformers.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,38 @@ services:
44
autoconfigure: true
55
public: false
66

7-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\FieldNameTransformer\AssetMetadataDefaultLanguageTransformer:
7+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\FieldNameTransformer\AssetMetadataDefaultLanguageTransformer:
88
tags:
99
- {name: pimcore.generic_data_index.pql_field_name_transformer, priority: 9}
1010
- {name: pimcore.generic_data_index.pql_field_name_transformer_sort, priority: 9}
1111

12-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\FieldNameTransformer\FieldCategoryTransformer:
12+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\FieldNameTransformer\FieldCategoryTransformer:
1313
tags:
1414
- {name: pimcore.generic_data_index.pql_field_name_transformer, priority: 10}
1515
- {name: pimcore.generic_data_index.pql_field_name_transformer_sort, priority: 10}
1616

17-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\FieldNameTransformer\IdTransformer:
17+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\FieldNameTransformer\IdTransformer:
1818
tags:
1919
- {name: pimcore.generic_data_index.pql_field_name_transformer, priority: 5}
2020

21-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\FieldNameTransformer\ImageGalleryTransformer:
21+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\FieldNameTransformer\ImageGalleryTransformer:
2222
tags:
2323
- {name: pimcore.generic_data_index.pql_field_name_transformer, priority: 6}
2424

25-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\FieldNameTransformer\KeywordTransformer:
25+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\FieldNameTransformer\KeywordTransformer:
2626
tags:
2727
- {name: pimcore.generic_data_index.pql_field_name_transformer, priority: 0}
2828
- {name: pimcore.generic_data_index.pql_field_name_transformer_sort, priority: 0}
2929

30-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\FieldNameTransformer\RelationsTransformer:
30+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\FieldNameTransformer\RelationsTransformer:
3131
tags:
3232
- {name: pimcore.generic_data_index.pql_field_name_transformer, priority: 0}
3333

34-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\FieldNameTransformer\SortTransformer:
34+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\FieldNameTransformer\SortTransformer:
3535
tags:
3636
- {name: pimcore.generic_data_index.pql_field_name_transformer_sort, priority: 1}
3737

38-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\QueryLanguage\FieldNameTransformer\SynonymTransformer:
38+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\QueryLanguage\FieldNameTransformer\SynonymTransformer:
3939
tags:
4040
- {name: pimcore.generic_data_index.pql_field_name_transformer, priority: 11}
4141
- {name: pimcore.generic_data_index.pql_field_name_transformer_sort, priority: 11}

config/services/search-index-adapter/open-search/modifiers/search-modifiers.yaml

Lines changed: 0 additions & 24 deletions
This file was deleted.

config/services/search/asset/field-definition-adapters.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,31 @@ services:
44
autoconfigure: true
55
public: false
66

7-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Asset\FieldDefinitionAdapter\TextKeywordAdapter:
7+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Asset\FieldDefinitionAdapter\TextKeywordAdapter:
88
shared: false
99
tags:
1010
- { name: "pimcore.generic_data_index.asset.search_index_field_definition", type: "input" }
1111
- { name: "pimcore.generic_data_index.asset.search_index_field_definition", type: "textarea" }
1212

1313

14-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Asset\FieldDefinitionAdapter\KeywordAdapter:
14+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Asset\FieldDefinitionAdapter\KeywordAdapter:
1515
shared: false
1616
tags:
1717
- { name: "pimcore.generic_data_index.asset.search_index_field_definition", type: "select" }
1818

19-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Asset\FieldDefinitionAdapter\RelationAdapter:
19+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Asset\FieldDefinitionAdapter\RelationAdapter:
2020
shared: false
2121
tags:
2222
- { name: "pimcore.generic_data_index.asset.search_index_field_definition", type: "asset" }
2323
- { name: "pimcore.generic_data_index.asset.search_index_field_definition", type: "document" }
2424
- { name: "pimcore.generic_data_index.asset.search_index_field_definition", type: "object" }
2525

26-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Asset\FieldDefinitionAdapter\DateAdapter:
26+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Asset\FieldDefinitionAdapter\DateAdapter:
2727
shared: false
2828
tags:
2929
- { name: "pimcore.generic_data_index.asset.search_index_field_definition", type: "date" }
3030

31-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Asset\FieldDefinitionAdapter\BooleanAdapter:
31+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Asset\FieldDefinitionAdapter\BooleanAdapter:
3232
shared: false
3333
tags:
3434
- { name: "pimcore.generic_data_index.asset.search_index_field_definition", type: "checkbox" }

config/services/search/asset/mapping-provider.yaml

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

7-
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\OpenSearch\Asset\PredefinedAssetMetadataProvider:
7+
Pimcore\Bundle\GenericDataIndexBundle\SearchIndexAdapter\DefaultSearch\Asset\PredefinedAssetMetadataProvider:
88
tags:
99
- { name: "pimcore.generic_data_index.asset.mapping_provider", type: "predefined" }
1010

0 commit comments

Comments
 (0)