dachcom-digital/dynamic-search-index-provider-opensearch

v2.0.1 2024-04-17 11:36 UTC

This package is auto-updated.

Last update: 2024-09-03 13:21:40 UTC


README

Software License Latest Release Codeception PHP Stan

An index storage extension for Pimcore Dynamic Search. Store data with the opensearch index service.

Release Plan

Installation

"require" : {
    "dachcom-digital/dynamic-search" : "~3.0.0",
    "dachcom-digital/dynamic-search-index-provider-opensearch" : "~2.0.0"
}

Dynamic Search Bundle

You need to install / enable the Dynamic Search Bundle first. Read more about it here. After that, proceed as followed:

Add Bundle to bundles.php:

<?php

return [
    \DsOpenSearchBundle\DsOpenSearchBundle::class => ['all' => true],
];

Basic Setup

dynamic_search:
    enable_pimcore_element_listener: true
    context:
        default:
            index_provider:
                service: 'opensearch'
                options:
                    index:
                        identifier: 'default'
                        hosts:
                            - 'opensearch:9200'
                        settings: []
                        credentials: # optional, empty array
                            username: '%OS_USERNAME%'
                            password: '%OS_PASSWORD%'
                    analysis:
                        analyzer:
                            keyword_analyzer:
                                tokenizer: keyword
                                type: custom
                                filter:
                                    - lowercase
                                    - asciifolding
                                    - trim
                                char_filter: []
                            edge_ngram_analyzer:
                                tokenizer: edge_ngram_tokenizer
                                filter:
                                    - lowercase
                            edge_ngram_search_analyzer:
                                tokenizer: lowercase
                        tokenizer:
                            edge_ngram_tokenizer:
                                type: edge_ngram
                                min_gram: 2
                                max_gram: 5
                                token_chars:
                                    - letter
            output_channels:
                suggestions:
                    service: 'opensearch_search'
                    normalizer:
                        service: 'os_document_raw_normalizer'
                    paginator:
                        enabled: false
                search:
                    service: 'opensearch_search'
                    use_frontend_controller: true
                    options:
                        result_limit: 10
                    normalizer:
                        service: 'os_document_source_normalizer'
                    paginator:
                        enabled: true
                        max_per_page: 10

Provider Options

Index Fields

Available Index Fields:

Output Channel Services

Search

This channel service just creates a simple DSL search class. You're able to modify the search by hooking via dynamic_search.output_channel.modifier.action into the post_query_build action.

Identifier: opensearch_search
Available Options:

Multi Search

Identifier: TBD
Available Options: none

Filter

TBD

Output Normalizer

A Output Normalizer can be defined for each output channel.

os_document_raw_normalizer

Use this normalizer to get the untouched opensearch response.

Available Options:
Currently none

os_document_source_normalizer

Use this normalizer to get all document values (_source) stored in response.hits.hits[]

Available Options:
Currently none

Commands

Rebuild Index Mapping

Use this command to rebuild a index by passing your context name with argument -c

Attention! By executing this command, the index gets removed and all data will be lost!

$  bin/console dynamic-search:os:rebuild-index -c default

Copyright and License

Copyright: DACHCOM.DIGITAL
For licensing details please visit LICENSE.md

Upgrade Info

Before updating, please check our upgrade notes!