Release Notes / Version 10.2104
Table Of Contents
Content Feeder
and
CAE Feeder
support optional indexing of Solr nested documents now. A custom
FeedablePopulator
implementation can use the new method
MutableFeedable#setNestedFeedables
to set data for indexing nested documents. For this support, some changes were necessary in the Feeder API and Solr configuration. This change requires manual upgrade steps, but reindexing is only required if Solr nested documents are actually being used.
Solr Configuration Changes
If you've customized the Solr configuration, make sure to apply the changes from Blueprint Solr configuration files in
apps/solr/modules/search/solr-config/src/main/app/configsets
very carefully. The addition of new Solr fields
"\_root\_"
and
"\_nest_path\_"
described below requires complete reindexing from scratch but you only need to add them, if you actually use Solr nested documents. Do not add these fields if you are not planning to reindex.
Changes to the Solr configuration in
content/conf/solrconfig.xml
and
cae/conf/solrconfig.xml
:
The "updateRequestProcessorChain" elements contain a new child element (IgnoreUndefinedFieldsUpdateProcessorFactory)
Changes to the Solr schema in
content/conf/schema.xml
and
cae/conf/schema.xml
:
New index fields in the Solr schema:
"\_root\_"
and"\_nest_path\_"
. If you add these fields, you must reindex from scratch. Adding these fields to an existing index must be avoided, as it can cause index inconsistencies.The attribute
required="true"
has been removed from field"feedertime"
.The catch-all dynamicfield "*" of type "ignored" has been removed. This was necessary to workaround a Solr bug (SOLR-15018).
In
content/conf/schema.xml
, a deprecated field "INVALID" of type "ignored" was added. This field is necessary to support queries from old Studio applications, and can be removed otherwise.In
cae/conf/schema.xml
, a deprecated field "1" of type "ignored" was added. This field is necessary to support queries from old CAE applications, and can be removed otherwise.
The removal of the catch-all dynamicfield means, that it is no longer possible to use undefined Solr field names in Solr queries. While such query conditions never matched anything, they might be used in project code, but will cause errors now. You can instead use a different Solr query condition that does not match anything, e.g.
(- * : *)
(without spaces between characters) . Alternatively, it's possible to add a Solr field of type "ignored" to the Solr schema that has the name as it's used in the custom query. However, the Solr field type "ignored" should not be used with a catch-all dynamicfield anymore.
Feeder API Changes
The interface
com.coremedia.cap.feeder.MutableFeedable
has a new methodsetNestedFeedables
. For the unlikely case, that you've implemented this interface, you have to implement the new method.Method
getType
of the interfacecom.coremedia.cap.feeder.FeedableElement
may return the new valueFeedableElement#TYPE_FEEDABLE
if nested documents are used.The new constant
FeedableElement#FEEDERSTATE_NESTED
with value"nested"
was introduced. It is used as value of the Solr index fieldfeederstate
for nested documents.
(CMS-10950)