Skip to content

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

@markus-moser

Description

@markus-moser

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: 

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions