Release Notes / Version 10.2107
Table Of ContentsApache Solr has been updated to version 8.1.1. Furthermore, Solr may also run as SolrCloud cluster for CMCC now.
For detailed changes of Apache Solr have a look at https://lucene.apache.org/solr/guide/8_1/solr-upgrade-notes.html and https://lucene.apache.org/solr/8_1_1/changes/Changes.html .
Re-indexing Required
The index format and schema have changed with this version and require full re-indexing from scratch for Content Feeder , CAE Feeder and Elastic Social indices.
Note that re-indexing may take quite some time for large repositories. To avoid long downtime, you can set up a new Content Feeder, new CAE Feeder, and new Solr instance in parallel to your existing installation, and let them feed the indexes of the newly set up Solr instance. When initial feeding is complete, you can update Content Server, Studio and CAE. They must be configured to use the new Solr instance for search, but will already find an initialized index, so that search is working immediately.
Index Schema Changes
Numeric and date field types
date
,
int
,
float
,
long
,
double
,
tdate
,
tint
,
tfloat
,
tlong
,
tdouble
have been removed from schema.xml files and fields use the corresponding point field types
pdate
,
pint
,
pfloat
,
plong
,
pdouble
now. Trie field types are deprecated since Solr 7 and point fields should be used instead. If you've defined custom fields of such a trie type, you should change them to the corresponding point field type. Most of these fields have also been changed to
stored="false"
because they have Solr DocValues enabled, which can also be used to retrieve the original value similar to stored fields. Multi-valued numeric fields where the order of values is important are still defined with
stored="true"
, because Solr DocValues do not maintain the order of values.
The
Content Feeder
index fields "
name
" and "
name_tokenized
" have been replaced by one field "
name
" in
modules/search/solr-config/src/main/app/configsets/content/conf/schema.xml
. The new field uses the SortableTextField type which supports sorting. Multiple fields were required in the past: the text field "
name_tokenized
" was used to find contents by words appearing in the name, while the field "
name
" was used for sorting search results by name. The new SortableTextField supports both use cases. You have to adapt custom code to use the field "
name
" instead of "
name_tokenized
" if you've referenced the latter in custom code. The field "
name
" is now configured for support of multiple languages in the same way as it was configured for "
name_tokenized
" before, which means that language-dependent fields such as "
name_en
" will automatically be used, if present. For details on language-dependent fields have a look at the Search Manual, chapter "Searching in Different Languages".
The new field "
name_lc
" in the
Content Feeder
index is set to the lower-cased name of the content and can be used to sort by name in a case-insensitive way.
The deprecated
Content Feeder
index field "
folder
" and the deprecated
Content Feeder
configuration property "
feeder.indexPath
" have been removed. The field wasn't used in the default configuration of the product. It was only set to the path of the content's parent folder, if the default configuration of the
Content Feeder
had been changed to set Spring property "
feeder.indexPath=true
". You should use the index field "
path
" instead, which contains the content's own path including its name, or the index field "
folderpath
" which contains the path as numeric content IDs. If really needed, you could also keep the field "
folder
" in your custom index schema, and implement feeding with a custom FeedablePopulator in the
Content Feeder.
The field "
stringSuggestions
" has been added to the
Content Feeder
index and is set to all values from the existing index fields "
productCode
" and "
assetProductCodes
". It is configured in
solrconfig.xml
for search suggestions. Previously
solrconfig.xml
configured "
productCode
" and "
assetProductCodes
" fields directly. This is a preparation for possible future changes, especially for modularizing Solr configuration files.
The field "
site
" has been removed from the
Content Feeder
index. It wasn't used in the product and did not always contain the correct site, if content was indexed before the site was correctly set up, for example before the corresponding CMSite document was created (bug CMS-11445). The class
SiteFeedablePopulator
which was responsible to set this field in the
Content Feeder
has also been removed from the Blueprint module
content-feeder-blueprint-component
. If you still need this field, you can keep the field and class in your custom Blueprint.
Docker Image
The Solr image in the docker deployment is now based on the "slim" flavor of the official Solr docker image from https://hub.docker.com/_/solr/ . It was based on the "alpine" flavor before, which is no longer available.
The directory layout of the docker image has changed as described for the base image in
https://github.com/docker-solr/docker-solr/pull/210
. Index data is now located in
/var/solr/data
and not in
/opt/solr/solr_cores
anymore.
SolrCloud Support
It is now also possible to connect CMCC applications to Apache Solr that is running as SolrCloud cluster. See section "Search Engine | SolrCloud" in the Search Manual for details.
(CMS-13291)