pimcore / generic-data-index-bundle

Other
3 stars 2 forks source link

[Idea]: Add config option to write multiple OpenSearch indices per entity #122

Open markus-moser opened 6 months ago

markus-moser commented 6 months ago

With this the index queue mechanism could be reused when additional OpenSearch indices are needed (for example in the data hub simple rest api bundle).

The config tree could then look somehow similiar to this one. The generic data index bundle would then add the default index configuration and additional bundles or project specific implementations could add additional index configurations if needed.

generic_data_index:
    search_index_definition:
           default:
                enabled: true
                index_naming_scheme: Pimcore\Bundle\GenericDataIndexBundle\SearchIndex\NamingScheme\DefaultNamingScheme
                index_settings:
                    ... # flexible config array
                options:
                    ... # flexible config array

                assets:
                    enabled: true
                    enqueue_handler: Pimcore\Bundle\GenericDataIndexBundle\SearchIndex\EnqueueHandler\AllAssets
                    filter:
                        before_normalization: ~
                        after_normalization:
                            - Pimcore\Bundle\GenericDataIndexBundle\SearchIndex\Filter\Crc32Filter
                    normalizer:
                        - Pimcore\Bundle\GenericDataIndexBundle\SearchIndex\Normalizer\AssetNormalizer
                        - Pimcore\Bundle\GenericDataIndexBundle\SearchIndex\Normalizer\Crc32Normalizer
                    dependent_items_resolver: ~
                        # - Pimcore\Bundle\GenericDataIndexBundle\SearchIndex\DependentItemsResolver\AssetRelatedItems
                    index_alias_resolver:
                        - Pimcore\Bundle\GenericDataIndexBundle\SearchIndex\IndexAliasResolver\IndexVersionAliasResolver
                    index_settings:
                        ... # flexible config array
                    post_enqueue_processor:
                        sync:
                            - Pimcore\Bundle\GenericDataIndexBundle\SearchIndex\PostEnqueueProcessor\ChildrenPathRewrite
                        async:
                            - Pimcore\Bundle\GenericDataIndexBundle\SearchIndex\PostEnqueueProcessor\DispatchQueueMessages
                    options:
                        ... # flexible config array

                data_objects:
                    enabled: true
                    ... # same options like assets
                    class_defintions: