Skip to content

Commit 86bc675

Browse files
mnoconkonradobozajulitafalcondusza
authored
IBX-9845: Solr9 (#2866)
* Adjusted code samples * [Discounts] Added doc for 4.6.22 * Fixed limit mention * Added update mention * Removed mentions of OverridePrioritatization * Wording * Update code_samples/discounts/src/Command/ManageDiscountsCommand.php Co-authored-by: Konrad Oboza <[email protected]> * Fixed highlights * Review suggestions * Added missing v prefix * Described requirements * Added Solr 9 instructions * Fixed link * Updated instructions * Apply suggestions from code review Co-authored-by: julitafalcondusza <[email protected]> --------- Co-authored-by: Konrad Oboza <[email protected]> Co-authored-by: julitafalcondusza <[email protected]>
1 parent e934874 commit 86bc675

File tree

4 files changed

+183
-27
lines changed

4 files changed

+183
-27
lines changed

docs/getting_started/requirements.md

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E
125125

126126
## PHP
127127

128+
=== "[[= product_name =]] v4.6"
129+
130+
- 8.3
131+
128132
=== "[[= product_name =]] v4.6"
129133

130134
- 8.3
@@ -208,25 +212,54 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E
208212

209213
=== "[[= product_name =]] v5.0"
210214

211-
- For content search, Solr 8.11.1 or higher.
212-
Alternatively, Elasticsearch 7.16.2 or higher 7.x version.
215+
|Name|Version|
216+
|---|---|
217+
|Solr|8.11.1+ or 9.8.1+|
218+
|Elasticsearch| 7.16.2+ |
219+
220+
If you see a "+" next to the product version, it indicates a recommended version or higher within the same major release.
221+
For example, "1.18+" means any 1.x version equal to or higher than 1.18, but not 2.x.
213222

214223
=== "[[= product_name =]] v4.6"
215224

216-
- For content search, Solr 7.7 LTS or Solr 8, recommended 8.11.1 or higher.
217-
Alternatively, Elasticsearch 7.16.2 or higher 7.x version.
218-
- The above solutions require Oracle Java/Open JDK. The minimum requirement is 8 LTS, recommended 11 LTS.
219-
Newer versions aren't supported.
225+
|Name|Version|
226+
|---|---|
227+
|Solr|8.11.1+ or 9.8.1+|
228+
|Elasticsearch| 7.16.2+ |
229+
230+
If you see a "+" next to the product version, it indicates a recommended version or higher within the same major release.
231+
For example, "1.18+" means any 1.x version equal to or higher than 1.18, but not 2.x.
220232

221233
=== "[[= product_name =]] v3.3"
222234

223-
- For content search, Solr 7.7 LTS or Solr 8, recommended 8.11.1 or higher.
224-
Alternatively, Elasticsearch 7.16.2 or higher 7.x version.
235+
|Name|Version|
236+
|---|---|
237+
|Solr|7.7 LTS or 8.11.1+|
238+
|Elasticsearch| 7.16.2+ |
239+
240+
If you see a "+" next to the product version, it indicates a recommended version or higher within the same major release.
241+
For example, "1.18+" means any 1.x version equal to or higher than 1.18, but not 2.x.
242+
225243
- For BinaryFile field indexing, Apache Tika 1.20 or higher 1.x version, recommended 1.28.1 or higher.
226244
- The above solutions require Oracle Java/Open JDK. The minimum requirement is 8 LTS, recommended 11 LTS. Newer versions aren't supported.
227245

228246
## Graphic Handler
229247

248+
=== "[[= product_name =]] v5.0"
249+
250+
- GraphicsMagick
251+
- ImageMagick
252+
- GD
253+
254+
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:
255+
256+
- JpegOptim
257+
- Optipng
258+
- Pngquant 2
259+
- SVGO 1
260+
- Gifsicle
261+
- cwebp
262+
230263
=== "[[= product_name =]] v4.6"
231264

232265
- GraphicsMagick
@@ -288,6 +321,10 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E
288321

289322
## Filesystem
290323

324+
=== "[[= product_name =]] v5.0"
325+
326+
- Linux ext4 / XFS
327+
291328
=== "[[= product_name =]] v4.6"
292329

293330
- Linux ext4 / XFS
@@ -339,6 +376,16 @@ For production setups it's recommended that you use Varnish/Fastly, Redis, NFS/E
339376

340377
## Browser
341378

379+
=== "[[= product_name =]] v5.0"
380+
381+
[[= 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.
382+
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.
383+
384+
- Mozilla® Firefox® most recent stable version (recommended)
385+
- Google Chrome™ most recent stable version (recommended)
386+
- Chromium™ based browsers such as Microsoft® Edge® and Opera®, most recent stable version, desktop *and* tablet
387+
- Apple® Safari® most recent stable version, desktop *and* tablet
388+
342389
=== "[[= product_name =]] v4.6"
343390

344391
[[= 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.

docs/release_notes/ibexa_dxp_v4.6.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@ The PHP API has been enhanced with the following new classes:
3434
[[= release_note_entry_end() =]]
3535
[[= release_note_entry_begin("Ibexa DXP " + version, 'TODO', ['Headless', 'Experience', 'Commerce']) =]]
3636

37-
#### TODO
37+
#### Support for Solr 9
38+
39+
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).
40+
41+
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 =]].
3842

3943
#### PHP API
4044

docs/search/search_engines/solr_search_engine/install_solr.md

Lines changed: 104 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,71 @@ For configuring Solr in other ways, including examples, see [Solr Cores and `sol
1313

1414
!!! note "Solr versions"
1515

16-
Supported Solr versions are Solr 7 and 8. Using most recent version of Solr 7.7 or 8.11 is recommended.
16+
Supported Solr versions are Solr 7, 8 and 9.
17+
Using the most recent version of Solr is recommended.
1718

1819
Download and extract Solr:
1920

2021
- [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)
2122
- [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)
23+
- [solr-9.8.1.tgz](https://archive.apache.org/dist/solr/solr/9.8.1/solr-9.8.1.tgz)
2224

23-
Copy the necessary configuration files. In the example below from the root of your project to the place you extracted Solr:
25+
Copy the necessary configuration files.
26+
The examples below copy from the root of your DXP project to the place you've extracted Solr:
2427

25-
``` bash
26-
# Make sure to replace the /opt/solr/ path with where you have placed Solr
27-
cd /opt/solr
28-
mkdir -p server/ibexa/template
29-
cp -R <project_root>/vendor/ibexa/solr/src/lib/Resources/config/solr/* server/ibexa/template
30-
cp server/solr/configsets/_default/conf/{solrconfig.xml,stopwords.txt,synonyms.txt} server/ibexa/template
31-
cp server/solr/solr.xml server/ibexa
32-
33-
# Modify solrconfig.xml to remove the section that doesn't agree with your schema
34-
sed -i.bak '/<updateRequestProcessorChain name="add-unknown-fields-to-the-schema".*/,/<\/updateRequestProcessorChain>/d' server/ibexa/template/solrconfig.xml
35-
36-
# Start Solr (but apply autocommit settings below first if you need to)
37-
bin/solr -s ibexa
38-
bin/solr create_core -c collection1 -d server/ibexa/template
39-
```
28+
=== "Solr 9"
29+
30+
[[= product_name =]] provides the following required configuration files:
31+
32+
- `vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages` directory
33+
- `vendor/ibexa/solr/src/lib/Resources/config/solr/managed-schema.xml`
34+
- `vendor/ibexa/solr/src/lib/Resources/config/solr/custom-fields-types-solr9.xml`
35+
- `vendor/ibexa/solr/src/lib/Resources/config/solr/language-fieldtypes.xml`
36+
37+
38+
``` bash
39+
# Make sure to replace the /opt/solr/ path with where you have placed Solr
40+
cd /opt/solr
41+
mkdir -p server/ibexa/template/conf
42+
cp -R <project_root>/vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages server/ibexa/template/conf
43+
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
44+
cp server/solr/configsets/_default/conf/{solrconfig.xml,stopwords.txt,synonyms.txt} server/ibexa/template/conf
45+
cp server/solr/solr.xml server/ibexa
46+
47+
# Modify solrconfig.xml to remove the section that doesn't agree with your schema
48+
sed -i.bak '/<updateRequestProcessorChain name="add-unknown-fields-to-the-schema".*/,/<\/updateRequestProcessorChain>/d' server/ibexa/template/conf/solrconfig.xml
49+
50+
# Start Solr (but apply autocommit settings below first if you need to)
51+
# The configuration path is an absolute path
52+
bin/solr -s ibexa
53+
bin/solr create_core -c collection1 -d /opt/solr/server/ibexa/template
54+
```
55+
56+
=== "Solr 7 and 8"
57+
58+
[[= product_name =]] provides the following required configuration files:
59+
60+
- `vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages` directory
61+
- `vendor/ibexa/solr/src/lib/Resources/config/solr/schema.xml`
62+
- `vendor/ibexa/solr/src/lib/Resources/config/solr/custom-fields-types.xml`
63+
- `vendor/ibexa/solr/src/lib/Resources/config/solr/language-fieldtypes.xml`
64+
65+
``` bash
66+
# Make sure to replace the /opt/solr/ path with where you have placed Solr
67+
cd /opt/solr
68+
mkdir -p server/ibexa/template
69+
cp -R <project_root>/vendor/ibexa/solr/src/lib/Resources/config/solr/solr.languages server/ibexa/template
70+
cp -R <project_root>/vendor/ibexa/solr/src/lib/Resources/config/solr/{schema.xml,custom-fields-types.xml,language-fieldtypes.xml} server/ibexa/template
71+
cp server/solr/configsets/_default/conf/{solrconfig.xml,stopwords.txt,synonyms.txt} server/ibexa/template
72+
cp server/solr/solr.xml server/ibexa
73+
74+
# Modify solrconfig.xml to remove the section that doesn't agree with your schema
75+
sed -i.bak '/<updateRequestProcessorChain name="add-unknown-fields-to-the-schema".*/,/<\/updateRequestProcessorChain>/d' server/ibexa/template/solrconfig.xml
76+
77+
# Start Solr (but apply autocommit settings below first if you need to)
78+
bin/solr -s ibexa
79+
bin/solr create_core -c collection1 -d server/ibexa/template
80+
```
4081

4182
#### Set up SolrCloud
4283

@@ -50,6 +91,8 @@ To set SolrCloud up follow [SolrCloud reference guide](https://solr.apache.org/g
5091

5192
### Continue Solr configuration
5293

94+
#### Configure commit frequency
95+
5396
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.
5497

5598
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:
69112
</autoSoftCommit>
70113
```
71114

115+
#### Configure spellcheck
116+
117+
Configure the spellcheck component in `solrconfig.xml`:
118+
119+
```xml
120+
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
121+
<lst name="spellchecker">
122+
<str name="name">default</str>
123+
<str name="field">meta_content__text_t</str>
124+
<str name="classname">solr.DirectSolrSpellChecker</str>
125+
<str name="distanceMeasure">internal</str>
126+
<float name="accuracy">0.5</float>
127+
<int name="maxEdits">2</int>
128+
<int name="minPrefix">1</int>
129+
<int name="maxInspections">5</int>
130+
<int name="minQueryLength">4</int>
131+
<float name="maxQueryFrequency">0.01</float>
132+
</lst>
133+
</searchComponent>
134+
```
135+
136+
Add this `spellcheck` component to the `/select` request handler:
137+
138+
```xml
139+
<requestHandler name="/select" class="solr.SearchHandler">
140+
<arr name="last-components">
141+
<str>spellcheck</str>
142+
</arr>
143+
<!-- […] -->
144+
</requestHandler>
145+
```
146+
72147
### Generate Solr configuration automatically
73148

74-
The command line tool `bin/generate-solr-config.sh` generates Solr 7 configuration automatically.
149+
The command line tool `bin/generate-solr-config.sh` generates Solr configuration automatically.
75150
It can be used for deploying to [[= product_name_cloud =]] (Platform.sh) and on-premise installs.
76151

77152
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
91166
env(SOLR_CORE): collection1
92167
```
93168
169+
### Configure Solr version
170+
171+
When using Solr 9, it's required to set the `version` parameter with the Solr version.
172+
The parameter is optional when using lower Solr versions.
173+
174+
``` yaml
175+
ibexa_solr:
176+
version: '9.8.1'
177+
```
178+
94179
### Single-core example (default)
95180

96181
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
145230

146231
``` yaml
147232
ibexa_solr:
233+
version: '9.8.1' # Required only if using Solr 9
148234
endpoints:
149235
endpoint0:
150236
dsn: '%solr_dsn%'

docs/update_and_migration/from_4.6/update_from_4.6.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,25 @@ Run the following scripts:
378378

379379
## v4.6.22
380380

381+
### Added support for Solr 9
382+
383+
This release adds support for [Solr 9](requirements.md#search).
384+
385+
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.
386+
387+
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.
388+
389+
Changes include:
390+
391+
1. Configuration files
392+
393+
- 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)
394+
- 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)
395+
396+
2. New [Solr version parameter](install_solr.md#configure-solr-version)
397+
398+
Once Solr 9 is fully configured, [refresh the search index](reindex_search.md).
399+
381400
### Set character set for activity log tables [[% include 'snippets/experience_badge.md' %]] [[% include 'snippets/commerce_badge.md' %]]
382401

383402
When using MySQL or MariaDB, run the following script to ensure correct character set for activity log tables:

0 commit comments

Comments
 (0)