Skip to main content

DS Index Provider: OpenSearch

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

Release Plan

ReleaseSupported OpenDXP VersionsSupported Symfony VersionsRelease DateMaintainedBranch
1.x1.0^7.42025Feature Branch1.x

Installation

"require" : {
"open-dxp/dynamic-search-bundle" : "~1.0.0",
"open-dxp/dynamic-search-index-provider-opensearch-bundle" : "~1.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 [
\OpenDxp\Bundle\DsOpenSearchBundle\OpenDxpDsOpenSearchBundle::class => ['all' => true],
];

Basic Setup

opendxp_dynamic_search:
enable_opendxp_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

NameDefault ValueDescription
index[]
analysis[]

Index Fields

Available Index Fields:

NameDescription
dynamicTBD
explicitTBD

Output Channel Services

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:

NameDefault ValueDescription
result_limit10

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

Upgrade Info

Before updating, please check our upgrade notes!

License

DACHCOM.DIGITAL AG, Löwenhofstrasse 15, 9424 Rheineck, Schweiz
dachcom.com, [email protected]
Copyright © 2025 DACHCOM.DIGITAL. All rights reserved.

For licensing details please visit LICENSE.md