Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 55 additions & 8 deletions docs/getting_started/requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand Down
6 changes: 5 additions & 1 deletion docs/release_notes/ibexa_dxp_v4.6.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
122 changes: 104 additions & 18 deletions docs/search/search_engines/solr_search_engine/install_solr.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,71 @@

!!! 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 <project_root>/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 '/<updateRequestProcessorChain name="add-unknown-fields-to-the-schema".*/,/<\/updateRequestProcessorChain>/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 <project_root>/vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages server/ibexa/template/conf
cp -R <project_root>/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 '/<updateRequestProcessorChain name="add-unknown-fields-to-the-schema".*/,/<\/updateRequestProcessorChain>/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 <project_root>/vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages server/ibexa/template
cp -R <project_root>/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 '/<updateRequestProcessorChain name="add-unknown-fields-to-the-schema".*/,/<\/updateRequestProcessorChain>/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

Expand All @@ -50,6 +91,8 @@

### 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.
Expand All @@ -69,9 +112,41 @@
</autoSoftCommit>
```

#### Configure spellcheck

Configure the spellcheck component in `solrconfig.xml`:

```xml
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">meta_content__text_t</str>
<str name="classname">solr.DirectSolrSpellChecker</str>
<str name="distanceMeasure">internal</str>
<float name="accuracy">0.5</float>
<int name="maxEdits">2</int>
<int name="minPrefix">1</int>
<int name="maxInspections">5</int>
<int name="minQueryLength">4</int>
<float name="maxQueryFrequency">0.01</float>
</lst>
</searchComponent>
```

Add this `spellcheck` component to the `/select` request handler:

Check warning on line 136 in docs/search/search_engines/solr_search_engine/install_solr.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/search/search_engines/solr_search_engine/install_solr.md#L136

[Ibexa.EOLWhitespace] Remove whitespace characters from the end of the line.
Raw output
{"message": "[Ibexa.EOLWhitespace] Remove whitespace characters from the end of the line.", "location": {"path": "docs/search/search_engines/solr_search_engine/install_solr.md", "range": {"start": {"line": 136, "column": 66}}}, "severity": "WARNING"}

```xml
<requestHandler name="/select" class="solr.SearchHandler">
<arr name="last-components">
<str>spellcheck</str>
</arr>
<!-- […] -->
</requestHandler>
```

### 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:
Expand All @@ -91,6 +166,16 @@
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:
Expand Down Expand Up @@ -145,6 +230,7 @@

``` yaml
ibexa_solr:
version: '9.8.1' # Required only if using Solr 9
endpoints:
endpoint0:
dsn: '%solr_dsn%'
Expand Down
19 changes: 19 additions & 0 deletions docs/update_and_migration/from_4.6/update_from_4.6.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Loading