diff --git a/docs/getting_started/requirements.md b/docs/getting_started/requirements.md index ed4dc19758..ed41f984ff 100644 --- a/docs/getting_started/requirements.md +++ b/docs/getting_started/requirements.md @@ -125,6 +125,10 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E ## PHP +=== "[[= product_name =]] v4.6" + + - 8.3 + === "[[= product_name =]] v4.6" - 8.3 @@ -208,25 +212,54 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E === "[[= product_name =]] v5.0" - - For content search, Solr 8.11.1 or higher. - Alternatively, Elasticsearch 7.16.2 or higher 7.x version. + |Name|Version| + |---|---| + |Solr|8.11.1+ or 9.8.1+| + |Elasticsearch| 7.16.2+ | + + 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. === "[[= product_name =]] v4.6" - - For content search, Solr 7.7 LTS or Solr 8, recommended 8.11.1 or higher. - Alternatively, Elasticsearch 7.16.2 or higher 7.x version. - - The above solutions require Oracle Java/Open JDK. The minimum requirement is 8 LTS, recommended 11 LTS. - Newer versions aren't supported. + |Name|Version| + |---|---| + |Solr|8.11.1+ or 9.8.1+| + |Elasticsearch| 7.16.2+ | + + 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. === "[[= product_name =]] v3.3" - - For content search, Solr 7.7 LTS or Solr 8, recommended 8.11.1 or higher. - Alternatively, Elasticsearch 7.16.2 or higher 7.x version. + |Name|Version| + |---|---| + |Solr|7.7 LTS or 8.11.1+| + |Elasticsearch| 7.16.2+ | + + 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. + - For BinaryFile field indexing, Apache Tika 1.20 or higher 1.x version, recommended 1.28.1 or higher. - The above solutions require Oracle Java/Open JDK. The minimum requirement is 8 LTS, recommended 11 LTS. Newer versions aren't supported. ## Graphic Handler +=== "[[= product_name =]] v5.0" + + - GraphicsMagick + - ImageMagick + - GD + + Optionally, if you intend to edit [PNG, SVG, GIF or WEBP files in the Image Editor](images.md#image-optimization), or use it with image variations: + + - JpegOptim + - Optipng + - Pngquant 2 + - SVGO 1 + - Gifsicle + - cwebp + === "[[= product_name =]] v4.6" - GraphicsMagick @@ -288,6 +321,10 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E ## Filesystem +=== "[[= product_name =]] v5.0" + + - Linux ext4 / XFS + === "[[= product_name =]] v4.6" - Linux ext4 / XFS @@ -339,6 +376,16 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E ## Browser +=== "[[= product_name =]] v5.0" + + [[= product_name =]] is developed to work with *any* web browser that supports modern standards, on *any* screen resolution suitable for web, running on *any* device. + However, for the Editorial and Administration User Interfaces, you need: a minimum of 1366-by-768 screen resolution, a desktop or tablet device, and a recommended/supported browser among the ones found below. + + - Mozilla® Firefox® most recent stable version (recommended) + - Google Chrome™ most recent stable version (recommended) + - Chromium™ based browsers such as Microsoft® Edge® and Opera®, most recent stable version, desktop *and* tablet + - Apple® Safari® most recent stable version, desktop *and* tablet + === "[[= product_name =]] v4.6" [[= product_name =]] is developed to work with *any* web browser that supports modern standards, on *any* screen resolution suitable for web, running on *any* device. diff --git a/docs/release_notes/ibexa_dxp_v4.6.md b/docs/release_notes/ibexa_dxp_v4.6.md index 98e66e2ca3..b71ffff9c0 100644 --- a/docs/release_notes/ibexa_dxp_v4.6.md +++ b/docs/release_notes/ibexa_dxp_v4.6.md @@ -34,7 +34,11 @@ The PHP API has been enhanced with the following new classes: [[= release_note_entry_end() =]] [[= release_note_entry_begin("Ibexa DXP " + version, 'TODO', ['Headless', 'Experience', 'Commerce']) =]] -#### TODO +#### Support for Solr 9 + +This release comes with support for [Solr 9](https://nightlies.apache.org/solr/draft-guides/solr-reference-guide-antora/solr/10_0/upgrade-notes/major-changes-in-solr-9.html). + +Solr 9 comes with support for [Dense Vector Search](https://solr.apache.org/guide/solr/latest/query-guide/dense-vector-search.html), paving the way for incoming improvements to [AI Actions](ai_actions.md) in [[= product_name =]]. #### PHP API diff --git a/docs/search/search_engines/solr_search_engine/install_solr.md b/docs/search/search_engines/solr_search_engine/install_solr.md index fd619b8ab5..7fd54664a6 100644 --- a/docs/search/search_engines/solr_search_engine/install_solr.md +++ b/docs/search/search_engines/solr_search_engine/install_solr.md @@ -13,30 +13,71 @@ For configuring Solr in other ways, including examples, see [Solr Cores and `sol !!! note "Solr versions" - Supported Solr versions are Solr 7 and 8. Using most recent version of Solr 7.7 or 8.11 is recommended. + Supported Solr versions are Solr 7, 8 and 9. + Using the most recent version of Solr is recommended. Download and extract Solr: - [solr-7.7.2.tgz](http://archive.apache.org/dist/lucene/solr/7.7.2/solr-7.7.2.tgz) or [solr-7.7.2.zip](http://archive.apache.org/dist/lucene/solr/7.7.2/solr-7.7.2.zip) - [solr-8.11.2.tgz](https://www.apache.org/dyn/closer.lua/lucene/solr/8.11.2/solr-8.11.2.tgz) or [solr-8.11.2.zip](https://www.apache.org/dyn/closer.lua/lucene/solr/8.11.2/solr-8.11.2.zip) +- [solr-9.8.1.tgz](https://archive.apache.org/dist/solr/solr/9.8.1/solr-9.8.1.tgz) -Copy the necessary configuration files. In the example below from the root of your project to the place you extracted Solr: +Copy the necessary configuration files. +The examples below copy from the root of your DXP project to the place you've extracted Solr: -``` bash -# Make sure to replace the /opt/solr/ path with where you have placed Solr -cd /opt/solr -mkdir -p server/ibexa/template -cp -R /vendor/ibexa/solr/src/lib/Resources/config/solr/* server/ibexa/template -cp server/solr/configsets/_default/conf/{solrconfig.xml,stopwords.txt,synonyms.txt} server/ibexa/template -cp server/solr/solr.xml server/ibexa - -# Modify solrconfig.xml to remove the section that doesn't agree with your schema -sed -i.bak '//d' server/ibexa/template/solrconfig.xml - -# Start Solr (but apply autocommit settings below first if you need to) -bin/solr -s ibexa -bin/solr create_core -c collection1 -d server/ibexa/template -``` +=== "Solr 9" + + [[= product_name =]] provides the following required configuration files: + + - `vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages` directory + - `vendor/ibexa/solr/src/lib/Resources/config/solr/managed-schema.xml` + - `vendor/ibexa/solr/src/lib/Resources/config/solr/custom-fields-types-solr9.xml` + - `vendor/ibexa/solr/src/lib/Resources/config/solr/language-fieldtypes.xml` + + + ``` bash + # Make sure to replace the /opt/solr/ path with where you have placed Solr + cd /opt/solr + mkdir -p server/ibexa/template/conf + cp -R /vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages server/ibexa/template/conf + cp -R /vendor/ibexa/solr/src/lib/Resources/config/solr/{managed-schema.xml,custom-fields-types-solr9.xml,language-fieldtypes.xml} server/ibexa/template/conf + cp server/solr/configsets/_default/conf/{solrconfig.xml,stopwords.txt,synonyms.txt} server/ibexa/template/conf + cp server/solr/solr.xml server/ibexa + + # Modify solrconfig.xml to remove the section that doesn't agree with your schema + sed -i.bak '//d' server/ibexa/template/conf/solrconfig.xml + + # Start Solr (but apply autocommit settings below first if you need to) + # The configuration path is an absolute path + bin/solr -s ibexa + bin/solr create_core -c collection1 -d /opt/solr/server/ibexa/template + ``` + +=== "Solr 7 and 8" + + [[= product_name =]] provides the following required configuration files: + + - `vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages` directory + - `vendor/ibexa/solr/src/lib/Resources/config/solr/schema.xml` + - `vendor/ibexa/solr/src/lib/Resources/config/solr/custom-fields-types.xml` + - `vendor/ibexa/solr/src/lib/Resources/config/solr/language-fieldtypes.xml` + + ``` bash + # Make sure to replace the /opt/solr/ path with where you have placed Solr + cd /opt/solr + mkdir -p server/ibexa/template + cp -R /vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages server/ibexa/template + cp -R /vendor/ibexa/solr/src/lib/Resources/config/solr/{schema.xml,custom-fields-types.xml,language-fieldtypes.xml} server/ibexa/template + cp server/solr/configsets/_default/conf/{solrconfig.xml,stopwords.txt,synonyms.txt} server/ibexa/template + cp server/solr/solr.xml server/ibexa + + # Modify solrconfig.xml to remove the section that doesn't agree with your schema + sed -i.bak '//d' server/ibexa/template/solrconfig.xml + + # Start Solr (but apply autocommit settings below first if you need to) + bin/solr -s ibexa + bin/solr create_core -c collection1 -d server/ibexa/template + ``` #### Set up SolrCloud @@ -50,6 +91,8 @@ To set SolrCloud up follow [SolrCloud reference guide](https://solr.apache.org/g ### Continue Solr configuration +#### Configure commit frequency + The bundle doesn't commit Solr index changes directly on repository updates, leaving it up to you to tune this using `solrconfig.xml` as best practice suggests. This setting is **required** if you want to see the changes after publish. @@ -69,9 +112,41 @@ It's strongly recommended to set-up `solrconfig.xml` like this: ``` +#### Configure spellcheck + +Configure the spellcheck component in `solrconfig.xml`: + +```xml + + + default + meta_content__text_t + solr.DirectSolrSpellChecker + internal + 0.5 + 2 + 1 + 5 + 4 + 0.01 + + +``` + +Add this `spellcheck` component to the `/select` request handler: + +```xml + + + spellcheck + + + +``` + ### Generate Solr configuration automatically -The command line tool `bin/generate-solr-config.sh` generates Solr 7 configuration automatically. +The command line tool `bin/generate-solr-config.sh` generates Solr configuration automatically. It can be used for deploying to [[= product_name_cloud =]] (Platform.sh) and on-premise installs. Execute the script from the [[= product_name =]] root directory for further information: @@ -91,6 +166,16 @@ The config further below assumes you have parameters set up for Solr DSN and sea env(SOLR_CORE): collection1 ``` +### Configure Solr version + +When using Solr 9, it's required to set the `version` parameter with the Solr version. +The parameter is optional when using lower Solr versions. + +``` yaml +ibexa_solr: + version: '9.8.1' +``` + ### Single-core example (default) Out of the box in [[= product_name =]] the following is enabled for a setup: @@ -145,6 +230,7 @@ If full language analysis features are preferred, then each language can be conf ``` yaml ibexa_solr: + version: '9.8.1' # Required only if using Solr 9 endpoints: endpoint0: dsn: '%solr_dsn%' diff --git a/docs/update_and_migration/from_4.6/update_from_4.6.md b/docs/update_and_migration/from_4.6/update_from_4.6.md index 9ed1c68e0d..ff7860ba09 100644 --- a/docs/update_and_migration/from_4.6/update_from_4.6.md +++ b/docs/update_and_migration/from_4.6/update_from_4.6.md @@ -378,6 +378,25 @@ Run the following scripts: ## v4.6.22 +### Added support for Solr 9 + +This release adds support for [Solr 9](requirements.md#search). + +To update Solr within an existing [[= product_name =]] project, first refer to the [Solr 9 upgrade planning](https://solr.apache.org/guide/solr/latest/upgrade-notes/major-changes-in-solr-9.html) instructions. + +Then, follow the [instructions for setting up Solr 9 with [[= product_name =]]](/search/search_engines/solr_search_engine/install_solr.md#configure-and-start-solr) and merge them with your custom configuration. + +Changes include: + +1. Configuration files + + - the `schema.xml` configuration file became [`managed-schema.xml`](https://solr.apache.org/guide/solr/latest/upgrade-notes/major-changes-in-solr-6.html#managed-schema-is-now-the-default) + - the [removed `LatLonType` field is replaced by the `LatLonPointSpatialField` field](https://solr.apache.org/guide/solr/latest/upgrade-notes/major-changes-in-solr-7.html#deprecations-and-removed-features) + +2. New [Solr version parameter](install_solr.md#configure-solr-version) + +Once Solr 9 is fully configured, [refresh the search index](reindex_search.md). + ### Set character set for activity log tables [[% include 'snippets/experience_badge.md' %]] [[% include 'snippets/commerce_badge.md' %]] When using MySQL or MariaDB, run the following script to ensure correct character set for activity log tables: