From e6010bd69e328eafb4b091596add8a69e6cda285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Tue, 13 Jan 2026 14:23:18 +0000 Subject: [PATCH 1/8] Adjusted the doc --- docs/getting_started/requirements.md | 2 +- .../elasticsearch/configure_elasticsearch.md | 57 +++++-------- .../elasticsearch/elasticsearch_overview.md | 2 +- .../elasticsearch/install_elasticsearch.md | 38 ++++----- .../from_5.0/update_from_5.0.md | 80 +++++++++++++++++++ 5 files changed, 122 insertions(+), 57 deletions(-) diff --git a/docs/getting_started/requirements.md b/docs/getting_started/requirements.md index 87205d32f5..41475b105c 100644 --- a/docs/getting_started/requirements.md +++ b/docs/getting_started/requirements.md @@ -215,7 +215,7 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E |Name|Version| |---|---| |Solr|8.11.1+ or 9.8.1+| - |Elasticsearch| 7.16.2+ | + |Elasticsearch| 8.19+ | If you see a "+" next to the product version, it indicates a recommended version or higher within the same major release. For example, "1.18+" means any 1.x version equal to or higher than 1.18, but not 2.x. diff --git a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md index 37df214ff7..583fff36ea 100644 --- a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md @@ -108,40 +108,27 @@ ibexa_elasticsearch: When you configure a cluster-based connection, and the cluster consists of many nodes, you can choose strategies that govern how the cluster reacts to changing operating conditions, or how workload is distributed among the nodes. -#### Connection pool +#### Node pool -With this setting you decide how a list of hosts that form a cluster is managed. -The list of active hosts tends to change in time, due to different reasons, such as connectivity issues, host malfunction, or the fact that you add new hosts to the cluster to increase its performance. -By default, the `StaticNoPingConnectionPool` setting is used. +With this setting you decide how nodes in the cluster are selected and how failed nodes are resurrected. +The node pool manages the list of active nodes, which can change over time due to connectivity issues, host malfunction, or when you add new nodes to the cluster to increase performance. +By default, Elasticsearch 8 uses `SimpleNodePool` with `RoundRobin` selector and `NoResurrect` strategy. -You can change the default setting with the following key: +You can customize the node pool behavior with the following keys: ``` yaml : # ... - connection_pool: Elasticsearch\ConnectionPool\ + node_pool_selector: Elastic\Transport\NodePool\Selector\RoundRobin + node_pool_resurrect: Elastic\Transport\NodePool\Resurrect\NoResurrect ``` -For more information and a list of available choices, see [Connection pool](https://www.elastic.co/guide/en/elasticsearch/client/php-api/7.x/connection_pool.html). +For more information and a list of available choices, see [Node pool](https://www.elastic.co/docs/reference/elasticsearch/clients/php/node_pool). !!! tip "Load tests recommendation" - If you change the connection pool setting, it's recommended that you to perform load tests to check whether the change doesn't negatively impact the performance of your environment. + If you change the node pool settings, it's recommended that you perform load tests to check whether the change doesn't negatively impact the performance of your environment. -#### Connection selector - -When the cluster consists of many hosts, the `connection_selector` setting decides what strategy is used to pick a node to send query requests to. -By default, the `RoundRobinSelector` setting is used. - -If you prefer a different strategy, or have created your own, custom strategy, you can change the default setting with the following key: - -``` yaml -: - # ... - connection_selector: Elasticsearch\ConnectionPool\Selectors\ -``` - -For more information and a list of available choices, see [Selectors](https://www.elastic.co/guide/en/elasticsearch/client/php-api/7.x/selectors.html). ##### Number of retries @@ -156,7 +143,7 @@ By default, `null` is used, which means that the number of retries equals to the Depending on the connection pool that you select, [[= product_name =]]'s reaction to reaching the maximum number of retries might differ. -For more information, see [Set retries](https://www.elastic.co/guide/en/elasticsearch/client/php-api/7.x/set-retries.html). +For more information, see [Set retries](https://www.elastic.co/guide/en/elasticsearch/client/php-api/8.19/set-retries.html). ## Configure Elasticsearch Cloud @@ -216,10 +203,10 @@ ibexa_elasticsearch: ### API key authentication If your Elasticsearch cluster is protected by API keys, you must provide the key and secret in authentication configuration to connect [[= product_name =]] with the cluster. -With API key authentication you can define different authorization levels, such as [`create_index` or `index`](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/security-privileges.html#privileges-list-indices). +With API key authentication you can define different authorization levels, such as [`create_index` or `index`](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/security-privileges.html#privileges-list-indices). Such approach proves useful if the cluster is available to the public. -For more information, see [Create API key](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/security-api-create-api-key.html). +For more information, see [Create API key](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/security-api-create-api-key.html). When using API key authentication, you must pass the following parameters to authenticate access to the cluster: @@ -292,24 +279,22 @@ To do this, pass the following setting under the `ssl` key: verification: false ``` -For more information, see [Elasticsearch: SSL Encryption](https://www.elastic.co/guide/en/elasticsearch/client/php-api/7.x/connceting.html#ssl-encryption). +For more information, see [Elasticsearch: SSL Encryption](https://www.elastic.co/guide/en/elasticsearch/client/php-api/8.19/connecting.html#ssl-encryption). ### Enable debugging In a staging environment, you can log messages about the status of communication with Elasticsearch. You can then use Symfony Profiler to review the logs. -By default, debugging is disabled. To enable debugging, you can toggle either of the following two settings: +By default, debugging is disabled. To enable debugging, you can use the following setting: ``` yaml : # ... debug: - trace: ``` -- `debug` logs basic information about a request, such as request status and time. -- `trace` logs additional information, such as steps to reproduce an exact copy of a query. +- `debug` logs information about requests, including request status and timing. !!! tip @@ -370,7 +355,7 @@ Index names use the following pattern: - `settings` - Settings under this key control all aspects related to an index. -For more information and a list of available settings, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/index-modules.html#index-modules-settings). +For more information and a list of available settings, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/index-modules.html#index-modules-settings). For example, you can define settings that convert text into a format that is optimized for search, like a normalizer that changes a case of all phrases in the index: @@ -392,7 +377,7 @@ For more information and a list of available settings, see [Elasticsearch docume - `mappings` - Settings under this key define mapping for fields in the index. -For more information about mappings, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/mapping.html). +For more information about mappings, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/mapping.html). When you create a custom index template, with settings for your own field and document types, make sure that it contains mappings for all searchable fields that are available in [[= product_name =]]. For an example of default configuration with a list of searchable fields. @@ -401,7 +386,7 @@ For more information about mappings, see [Elasticsearch documentation](https://w ### Fine-tune the search results Your search results can be adjusted by configuring additional parameters. -For a list of available mapping parameters and their usage, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/mapping-params.html). +For a list of available mapping parameters and their usage, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/mapping-params.html). For example, you can apply a mapping parameter, in this case, a normalizer, to a specific mapping under the `dynamic_templates` key: @@ -487,9 +472,9 @@ For more information about specifying the pattern for your language, see [Define #### Create config for language specific analyzer -For information about configuring an analyzer for each specific language, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.17/analysis-lang-analyzer.html). +For information about configuring an analyzer for each specific language, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/analysis-lang-analyzer.html). -An adoption of the [English analyzer](https://www.elastic.co/guide/en/elasticsearch/reference/7.17/analysis-lang-analyzer.html#english-analyzer) in [[= product_name =]] configuration looks like this: +An adoption of the [English analyzer](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/analysis-lang-analyzer.html#english-analyzer) in [[= product_name =]] configuration looks like this: ```yaml hl_lines="3-5 15-23 35 41-52 94 99" [[= include_file('code_samples/search/custom/config/packages/elasticsearch-en.yaml') =]] @@ -519,7 +504,7 @@ ibexa_elasticsearch: - ger_de ``` -For more information about how Elasticsearch handles settings and mappings from multiple templates that match the same index, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/indices-templates-v1.html#multiple-templates-v1). +For more information about how Elasticsearch handles settings and mappings from multiple templates that match the same index, see [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/index-templates.html). # Extend Elasticsearch diff --git a/docs/search/search_engines/elasticsearch/elasticsearch_overview.md b/docs/search/search_engines/elasticsearch/elasticsearch_overview.md index 151fb797c3..6b96f1ce58 100644 --- a/docs/search/search_engines/elasticsearch/elasticsearch_overview.md +++ b/docs/search/search_engines/elasticsearch/elasticsearch_overview.md @@ -14,7 +14,7 @@ Instead of searching text directly, it searches and index. Thanks to this mechanism, it's able to achieve fast response. For a detailed description of advanced settings that you might require in a specific production environment, see the documentation provided by Elastic. -Start with the [Set up Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/7.7/setup.html) section. +Start with the [Set up Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/setup.html) section. **Prerequisite** diff --git a/docs/search/search_engines/elasticsearch/install_elasticsearch.md b/docs/search/search_engines/elasticsearch/install_elasticsearch.md index bcfeeafee1..00ac0b4ed7 100644 --- a/docs/search/search_engines/elasticsearch/install_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/install_elasticsearch.md @@ -6,16 +6,16 @@ description: Install Elasticsearch to use it with Ibexa DXP. ## Download and install Elasticsearch -[Install Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/7.7/install-elasticsearch.html) on your server. +[Install Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/install-elasticsearch.html) on your server. As an example, use the following [Docker](https://docs.docker.com/get-started/docker-overview/) command: ```yml -docker run -d --name ibexa-dxp-elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.16.2 +docker run -d --name ibexa-dxp-elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:8.19.0 ``` !!! note - [[= product_name =]] supports Elasticsearch in version 7.16.2 or higher. + [[= product_name =]] supports Elasticsearch in version 8.19 or higher. ## Verify the instance @@ -26,21 +26,21 @@ It should be similar to the following example: ``` json { - "name" : "doej-MacPro-mTkBe", - "cluster_name" : "elasticsearch", - "cluster_uuid" : "WLYqnQ_lSZGbX-vDIe_vZQ", - "version" : { - "number" : "7.7.0", - "build_flavor" : "default", - "build_type" : "tar", - "build_hash" : "5b1fea5", - "build_date" : "2020-05-10T02:35:59.208Z", - "build_snapshot" : false, - "lucene_version" : "8.5.1", - "minimum_wire_compatibility_version" : "6.8.0", - "minimum_index_compatibility_version" : "6.0.0-beta1" - }, - "tagline" : "You Know, for Search" + "name" : "f45b86ab3726", + "cluster_name" : "docker-cluster", + "cluster_uuid" : "5OAEghGPTLSd4jUJColoNQ", + "version" : { + "number" : "8.19.0", + "build_flavor" : "default", + "build_type" : "docker", + "build_hash" : "93788a8c2882eb5b606510680fac214cff1c7a22", + "build_date" : "2025-07-23T22:10:18.138212839Z", + "build_snapshot" : false, + "lucene_version" : "9.12.2", + "minimum_wire_compatibility_version" : "7.17.0", + "minimum_index_compatibility_version" : "7.0.0" + }, + "tagline" : "You Know, for Search" } ``` @@ -91,4 +91,4 @@ php bin/console ibexa:reindex !!! caution "Risks of premature indexing" Don't reindex your data before you create index templates. - Otherwise Elasticsearch attempts to use its [dynamic field mapping](https://www.elastic.co/guide/en/elasticsearch/reference/7.7/dynamic-field-mapping.html) feature to create type mappings automatically. + Otherwise Elasticsearch attempts to use its [dynamic field mapping](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/dynamic-field-mapping.html) feature to create type mappings automatically. diff --git a/docs/update_and_migration/from_5.0/update_from_5.0.md b/docs/update_and_migration/from_5.0/update_from_5.0.md index 0a1ec5eec2..0b3e20323e 100644 --- a/docs/update_and_migration/from_5.0/update_from_5.0.md +++ b/docs/update_and_migration/from_5.0/update_from_5.0.md @@ -180,6 +180,86 @@ If the platform comes from lower than v5.0.3 and is updated to higher than v5.0. WHERE tree_root_location_id IS NULL AND config::jsonb ? 'ibexa.site_access.config.content.tree_root.location_id'; ``` +## v5.0.5 + +### Removed support for Elasticsearch 7 + +As of v5.0.5, Elasticsearch 7 is no longer supported by [[= product_name =]]. +If you're using Elasticsearch as your search engine, you must upgrade to Elasticsearch 8.19 or higher. + +#### Update Elasticsearch server + +Before updating your [[= product_name =]] installation, upgrade your Elasticsearch server to version 8.19 or higher. +Follow the [Elasticsearch upgrade guide](https://www.elastic.co/guide/en/elastic-stack/8.19/upgrading-elastic-stack.html#prepare-to-upgrade) for detailed instructions. + +When using [[= product_name_cloud =]], see [Elasticsearch service](https://docs.upsun.com/add-services/elasticsearch.html) for a list of supported versions. + +#### Update configuration + +Next, you need to update your configuration in `config/packages/ibexa_elasticsearch.yaml`. + +##### Update connection pool setting + +The `connection_pool` and `connection_selector` settings have been removed and `node_pool_selector` and `node_pool_resurrect` have been added: + +``` yaml +# Old configuration (Elasticsearch 7) +ibexa_elasticsearch: + connections: + default: + connection_pool: 'Elasticsearch\ConnectionPool\StaticNoPingConnectionPool' + connection_selector: 'Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector' +``` + +``` yaml +# New configuration (Elasticsearch 8) +ibexa_elasticsearch: + connections: + default: + node_pool_selector: 'Elastic\Transport\NodePool\Selector\RoundRobin' + node_pool_resurrect: 'Elastic\Transport\NodePool\Resurrect\NoResurrect' +``` + +For more information, see [Node pool](https://www.elastic.co/docs/reference/elasticsearch/clients/php/node_pool#_using_a_custom_nodepool_selector_and_resurrect). + +##### Remove trace option + +The `trace` configuration option has been removed: + +``` yaml +# Old configuration (Elasticsearch 7) +ibexa_elasticsearch: + connections: + default: + debug: true + trace: true +``` + +``` yaml +# New configuration (Elasticsearch 8) +ibexa_elasticsearch: + connections: + default: + debug: true + # trace option removed +``` + +#### Reindex content + +After upgrading to Elasticsearch 8 and updating your configuration, you must reindex the search engine: + +1. Push the index templates: + + ``` bash + php bin/console ibexa:elasticsearch:put-index-template --overwrite + ``` + +2. Reindex your content: + + ``` bash + php bin/console ibexa:reindex + ``` + ## LTS Updates and additional packages [LTS Updates](editions.md#lts-updates) are standalone packages with their own update procedures. From 77a32fc715a4d3dd7de7637a4eedd26c4becfc74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Tue, 13 Jan 2026 15:30:57 +0000 Subject: [PATCH 2/8] Selfreview --- .../search_engines/elasticsearch/configure_elasticsearch.md | 6 +++--- docs/update_and_migration/from_5.0/update_from_5.0.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md index 583fff36ea..1162c8e57d 100644 --- a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md @@ -108,13 +108,13 @@ ibexa_elasticsearch: When you configure a cluster-based connection, and the cluster consists of many nodes, you can choose strategies that govern how the cluster reacts to changing operating conditions, or how workload is distributed among the nodes. -#### Node pool +#### Node pool settings -With this setting you decide how nodes in the cluster are selected and how failed nodes are resurrected. +With these settings you decide how nodes in the cluster are selected and how failed nodes are resurrected. The node pool manages the list of active nodes, which can change over time due to connectivity issues, host malfunction, or when you add new nodes to the cluster to increase performance. By default, Elasticsearch 8 uses `SimpleNodePool` with `RoundRobin` selector and `NoResurrect` strategy. -You can customize the node pool behavior with the following keys: +You can customize the node pool behavior with the following settings: ``` yaml : diff --git a/docs/update_and_migration/from_5.0/update_from_5.0.md b/docs/update_and_migration/from_5.0/update_from_5.0.md index 0b3e20323e..886b8d63dd 100644 --- a/docs/update_and_migration/from_5.0/update_from_5.0.md +++ b/docs/update_and_migration/from_5.0/update_from_5.0.md @@ -220,7 +220,7 @@ ibexa_elasticsearch: node_pool_resurrect: 'Elastic\Transport\NodePool\Resurrect\NoResurrect' ``` -For more information, see [Node pool](https://www.elastic.co/docs/reference/elasticsearch/clients/php/node_pool#_using_a_custom_nodepool_selector_and_resurrect). +For more information, see [Node pool settings](configure_elasticsearch.md#node-pool-settings). ##### Remove trace option From 56e7e5ac1e5d0df057b33414aa48081495a0df4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Tue, 13 Jan 2026 16:41:48 +0100 Subject: [PATCH 3/8] Apply suggestion from @mnocon --- .../search_engines/elasticsearch/configure_elasticsearch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md index 1162c8e57d..ae2992ae87 100644 --- a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md @@ -294,7 +294,7 @@ By default, debugging is disabled. To enable debugging, you can use the followin debug: ``` -- `debug` logs information about requests, including request status and timing. +- `debug` logs information about requests, including request status and timing !!! tip From 6463dd5b7a393c140071b38692f55c3e416b3bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Wed, 14 Jan 2026 16:59:49 +0000 Subject: [PATCH 4/8] Reworked the doc: api_key examples and ES7 is still supported --- docs/getting_started/requirements.md | 2 +- .../elasticsearch/configure_elasticsearch.md | 37 +++++++++++++++++-- .../elasticsearch/install_elasticsearch.md | 2 +- .../from_5.0/update_from_5.0.md | 28 ++++++++------ 4 files changed, 52 insertions(+), 17 deletions(-) diff --git a/docs/getting_started/requirements.md b/docs/getting_started/requirements.md index 41475b105c..da2760c0e5 100644 --- a/docs/getting_started/requirements.md +++ b/docs/getting_started/requirements.md @@ -215,7 +215,7 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E |Name|Version| |---|---| |Solr|8.11.1+ or 9.8.1+| - |Elasticsearch| 8.19+ | + |Elasticsearch| 7.16.2+ or 8.19+ | If you see a "+" next to the product version, it indicates a recommended version or higher within the same major release. For example, "1.18+" means any 1.x version equal to or higher than 1.18, but not 2.x. diff --git a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md index ae2992ae87..3024fa5257 100644 --- a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md @@ -112,6 +112,7 @@ When you configure a cluster-based connection, and the cluster consists of many With these settings you decide how nodes in the cluster are selected and how failed nodes are resurrected. The node pool manages the list of active nodes, which can change over time due to connectivity issues, host malfunction, or when you add new nodes to the cluster to increase performance. + By default, Elasticsearch 8 uses `SimpleNodePool` with `RoundRobin` selector and `NoResurrect` strategy. You can customize the node pool behavior with the following settings: @@ -141,7 +142,7 @@ By default, `null` is used, which means that the number of retries equals to the retries: null ``` -Depending on the connection pool that you select, [[= product_name =]]'s reaction to reaching the maximum number of retries might differ. +Depending on the node pool settings that you select, [[= product_name =]]'s reaction to reaching the maximum number of retries might differ. For more information, see [Set retries](https://www.elastic.co/guide/en/elasticsearch/client/php-api/8.19/set-retries.html). @@ -215,7 +216,7 @@ When using API key authentication, you must pass the following parameters to aut # ... authentication: type: api_key - credentials: ['', ''] + credentials: ['', ''] ``` For example: @@ -228,9 +229,34 @@ ibexa_elasticsearch: elastic_cloud_id: 'test:ZWFzdHVzMi5henVyZS5lbGFzdGljLWNsb3VkLmNvbTo5MjQzJGUwZ' authentication: type: api_key - credentials: ['8Ek5f3IBGQlWj6v4M7zG', 'rmI6IechSnSJymWJ4LZqUw'] + credentials: ['ui2lp2axTNmsyakw9tvNnw', 'VuaCfGcBCdbkQm-e5aOx'] ``` +Alternatively, pass the encoded API key value (Elasticsearch also calls it "API key credentials"): + +``` yaml +: + # ... + authentication: + type: api_key + credentials: [''] +``` + +For example: + +``` yaml +ibexa_elasticsearch: + connections: + cloud: + debug: true + elastic_cloud_id: 'test:ZWFzdHVzMi5henVyZS5lbGFzdGljLWNsb3VkLmNvbTo5MjQzJGUwZ' + authentication: + type: api_key + credentials: ['VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw=='] +``` + +Refer to the [examples in Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/security-api-create-api-key.html#security-api-create-api-key-example) to see the difference between API key, API key id and encoded API key. + ### SSL When you need to protect your communication with the Elasticsearch server, you can use SSL encryption. @@ -296,6 +322,11 @@ By default, debugging is disabled. To enable debugging, you can use the followin - `debug` logs information about requests, including request status and timing +!!! note "Elasticsearch 7 compatibility" + + If you're using Elasticsearch 7, you can also use the `trace` setting for additional debugging information. + This setting is deprecated and removed in Elasticsearch 8. + !!! tip Make sure that you disable debugging in a production environment. diff --git a/docs/search/search_engines/elasticsearch/install_elasticsearch.md b/docs/search/search_engines/elasticsearch/install_elasticsearch.md index 00ac0b4ed7..495337dadc 100644 --- a/docs/search/search_engines/elasticsearch/install_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/install_elasticsearch.md @@ -15,7 +15,7 @@ docker run -d --name ibexa-dxp-elasticsearch -p 9200:9200 -p 9300:9300 -e "disco !!! note - [[= product_name =]] supports Elasticsearch in version 8.19 or higher. + [[= product_name =]] supports Elasticsearch in versions 7.16 and 8.19. ## Verify the instance diff --git a/docs/update_and_migration/from_5.0/update_from_5.0.md b/docs/update_and_migration/from_5.0/update_from_5.0.md index 886b8d63dd..6c46e9efd9 100644 --- a/docs/update_and_migration/from_5.0/update_from_5.0.md +++ b/docs/update_and_migration/from_5.0/update_from_5.0.md @@ -182,28 +182,33 @@ If the platform comes from lower than v5.0.3 and is updated to higher than v5.0. ## v5.0.5 -### Removed support for Elasticsearch 7 +### Elasticsearch 8 support -As of v5.0.5, Elasticsearch 7 is no longer supported by [[= product_name =]]. -If you're using Elasticsearch as your search engine, you must upgrade to Elasticsearch 8.19 or higher. +As of v5.0.5, [[= product_name =]] adds support for Elasticsearch 8.19 or higher. +You can continue using Elasticsearch 7.16.2+, or upgrade to Elasticsearch 8 for improved performance and security features. + +When choosing to keep using Elasticsearch 7.16.2, adjust your configuration as described in the [Update configuration](#update-configuration) section below to avoid using deprecated settings. + +If you choose to upgrade to Elasticsearch 8, follow these steps: #### Update Elasticsearch server -Before updating your [[= product_name =]] installation, upgrade your Elasticsearch server to version 8.19 or higher. +Upgrade your Elasticsearch server to version 8.19 or higher. Follow the [Elasticsearch upgrade guide](https://www.elastic.co/guide/en/elastic-stack/8.19/upgrading-elastic-stack.html#prepare-to-upgrade) for detailed instructions. When using [[= product_name_cloud =]], see [Elasticsearch service](https://docs.upsun.com/add-services/elasticsearch.html) for a list of supported versions. #### Update configuration -Next, you need to update your configuration in `config/packages/ibexa_elasticsearch.yaml`. +Update your configuration in `config/packages/ibexa_elasticsearch.yaml`. -##### Update connection pool setting +##### Replace deprecated connection pool settings -The `connection_pool` and `connection_selector` settings have been removed and `node_pool_selector` and `node_pool_resurrect` have been added: +The deprecated `connection_pool` and `connection_selector` settings are now ignored and don't have any effect. +Replace them with appriopriate `node_pool_selector` and `node_pool_resurrect` settings: ``` yaml -# Old configuration (Elasticsearch 7) +# Old configuration (Elasticsearch 7 - deprecated) ibexa_elasticsearch: connections: default: @@ -224,8 +229,7 @@ For more information, see [Node pool settings](configure_elasticsearch.md#node-p ##### Remove trace option -The `trace` configuration option has been removed: - +The `trace` debugging option is no longer available. ``` yaml # Old configuration (Elasticsearch 7) ibexa_elasticsearch: @@ -241,12 +245,12 @@ ibexa_elasticsearch: connections: default: debug: true - # trace option removed + # Trace option is no longer available ``` #### Reindex content -After upgrading to Elasticsearch 8 and updating your configuration, you must reindex the search engine: +After upgrading to Elasticsearch 8 and updating your configuration, reindex the search engine: 1. Push the index templates: From e8edbcd1a35763ed46d0806ddda95ec307441a11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Thu, 15 Jan 2026 10:18:51 +0100 Subject: [PATCH 5/8] Apply suggestions from Doc review Co-authored-by: julitafalcondusza <117284672+julitafalcondusza@users.noreply.github.com> --- .../search_engines/elasticsearch/configure_elasticsearch.md | 2 +- docs/update_and_migration/from_5.0/update_from_5.0.md | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md index 3024fa5257..513064f20f 100644 --- a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md @@ -255,7 +255,7 @@ ibexa_elasticsearch: credentials: ['VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw=='] ``` -Refer to the [examples in Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/security-api-create-api-key.html#security-api-create-api-key-example) to see the difference between API key, API key id and encoded API key. +Refer to the [examples in Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/security-api-create-api-key.html#security-api-create-api-key-example) to see the difference between API key, API key id, and encoded API key. ### SSL diff --git a/docs/update_and_migration/from_5.0/update_from_5.0.md b/docs/update_and_migration/from_5.0/update_from_5.0.md index 6c46e9efd9..56a547953f 100644 --- a/docs/update_and_migration/from_5.0/update_from_5.0.md +++ b/docs/update_and_migration/from_5.0/update_from_5.0.md @@ -205,7 +205,7 @@ Update your configuration in `config/packages/ibexa_elasticsearch.yaml`. ##### Replace deprecated connection pool settings The deprecated `connection_pool` and `connection_selector` settings are now ignored and don't have any effect. -Replace them with appriopriate `node_pool_selector` and `node_pool_resurrect` settings: +Replace them with appropriate `node_pool_selector` and `node_pool_resurrect` settings: ``` yaml # Old configuration (Elasticsearch 7 - deprecated) @@ -230,6 +230,7 @@ For more information, see [Node pool settings](configure_elasticsearch.md#node-p ##### Remove trace option The `trace` debugging option is no longer available. + ``` yaml # Old configuration (Elasticsearch 7) ibexa_elasticsearch: From 631d3692fb26f2fe3a09034a2bb71d677a4c0a7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Thu, 15 Jan 2026 11:00:29 +0000 Subject: [PATCH 6/8] Added suggestion that updating is recommended - and removed explicit version --- .../search_engines/elasticsearch/configure_elasticsearch.md | 4 ++-- .../search_engines/elasticsearch/elasticsearch_overview.md | 2 +- docs/update_and_migration/from_5.0/update_from_5.0.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md index 513064f20f..129dd217e8 100644 --- a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md @@ -113,7 +113,7 @@ When you configure a cluster-based connection, and the cluster consists of many With these settings you decide how nodes in the cluster are selected and how failed nodes are resurrected. The node pool manages the list of active nodes, which can change over time due to connectivity issues, host malfunction, or when you add new nodes to the cluster to increase performance. -By default, Elasticsearch 8 uses `SimpleNodePool` with `RoundRobin` selector and `NoResurrect` strategy. +By default, Elasticsearch uses `SimpleNodePool` with `RoundRobin` selector and `NoResurrect` strategy. You can customize the node pool behavior with the following settings: @@ -124,7 +124,7 @@ You can customize the node pool behavior with the following settings: node_pool_resurrect: Elastic\Transport\NodePool\Resurrect\NoResurrect ``` -For more information and a list of available choices, see [Node pool](https://www.elastic.co/docs/reference/elasticsearch/clients/php/node_pool). +For more information and a list of available choices, see [Node pool](https://www.elastic.co/guide/en/elasticsearch/client/php-api/8.19/node_pool.html). !!! tip "Load tests recommendation" diff --git a/docs/search/search_engines/elasticsearch/elasticsearch_overview.md b/docs/search/search_engines/elasticsearch/elasticsearch_overview.md index 6b96f1ce58..c84ba47a66 100644 --- a/docs/search/search_engines/elasticsearch/elasticsearch_overview.md +++ b/docs/search/search_engines/elasticsearch/elasticsearch_overview.md @@ -36,4 +36,4 @@ To update the schema and then reindex the search, use the following commands: ```bash php bin/console ibexa:elasticsearch:put-index-template --overwrite php bin/console ibexa:reindex -``` \ No newline at end of file +``` diff --git a/docs/update_and_migration/from_5.0/update_from_5.0.md b/docs/update_and_migration/from_5.0/update_from_5.0.md index 56a547953f..6dde6b20b5 100644 --- a/docs/update_and_migration/from_5.0/update_from_5.0.md +++ b/docs/update_and_migration/from_5.0/update_from_5.0.md @@ -185,7 +185,7 @@ If the platform comes from lower than v5.0.3 and is updated to higher than v5.0. ### Elasticsearch 8 support As of v5.0.5, [[= product_name =]] adds support for Elasticsearch 8.19 or higher. -You can continue using Elasticsearch 7.16.2+, or upgrade to Elasticsearch 8 for improved performance and security features. +You can continue using [unsupported Elasticsearch 7.16.2+]((https://www.elastic.co/support/eol#prior-versions)), but it's recommended to upgrade to Elasticsearch 8 for improved performance and security features. When choosing to keep using Elasticsearch 7.16.2, adjust your configuration as described in the [Update configuration](#update-configuration) section below to avoid using deprecated settings. From 984972c714ca0f0cdb0e5c8afc93ad96daf57897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Thu, 15 Jan 2026 12:03:03 +0100 Subject: [PATCH 7/8] Update docs/search/search_engines/elasticsearch/configure_elasticsearch.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tomasz DÄ…browski <64841871+dabrt@users.noreply.github.com> --- .../search_engines/elasticsearch/configure_elasticsearch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md index 129dd217e8..60e82cc9c0 100644 --- a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md @@ -232,7 +232,7 @@ ibexa_elasticsearch: credentials: ['ui2lp2axTNmsyakw9tvNnw', 'VuaCfGcBCdbkQm-e5aOx'] ``` -Alternatively, pass the encoded API key value (Elasticsearch also calls it "API key credentials"): +Alternatively, pass the encoded API key value, which Elasticsearch also calls "API key credentials": ``` yaml : From d2e117e313b0d26e2d697d4e898380f67a424605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Thu, 15 Jan 2026 11:06:40 +0000 Subject: [PATCH 8/8] Improved wording --- .../search_engines/elasticsearch/configure_elasticsearch.md | 2 +- docs/update_and_migration/from_5.0/update_from_5.0.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md index 60e82cc9c0..29e9f5bd3f 100644 --- a/docs/search/search_engines/elasticsearch/configure_elasticsearch.md +++ b/docs/search/search_engines/elasticsearch/configure_elasticsearch.md @@ -113,7 +113,7 @@ When you configure a cluster-based connection, and the cluster consists of many With these settings you decide how nodes in the cluster are selected and how failed nodes are resurrected. The node pool manages the list of active nodes, which can change over time due to connectivity issues, host malfunction, or when you add new nodes to the cluster to increase performance. -By default, Elasticsearch uses `SimpleNodePool` with `RoundRobin` selector and `NoResurrect` strategy. +By default, Elasticsearch uses the `SimpleNodePool` algorithm with `RoundRobin` selector and `NoResurrect` strategy. You can customize the node pool behavior with the following settings: diff --git a/docs/update_and_migration/from_5.0/update_from_5.0.md b/docs/update_and_migration/from_5.0/update_from_5.0.md index 8803e72e69..3ab34d8595 100644 --- a/docs/update_and_migration/from_5.0/update_from_5.0.md +++ b/docs/update_and_migration/from_5.0/update_from_5.0.md @@ -185,7 +185,7 @@ If the platform comes from lower than v5.0.3 and is updated to higher than v5.0. ### Elasticsearch 8 support As of v5.0.5, [[= product_name =]] adds support for Elasticsearch 8.19 or higher. -You can continue using [unsupported Elasticsearch 7.16.2+]((https://www.elastic.co/support/eol#prior-versions)), but it's recommended to upgrade to Elasticsearch 8 for improved performance and security features. +You can continue using [unsupported Elasticsearch 7.16.2+](https://www.elastic.co/support/eol), but it's recommended to upgrade to Elasticsearch 8 for improved performance and security features. When choosing to keep using Elasticsearch 7.16.2, adjust your configuration as described in the [Update configuration](#update-configuration) section below to avoid using deprecated settings.