close

Filter

loading table of contents...

Release Notes / Version 10.2104

Table Of Contents

Feeder Support for Solr Nested Documents

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 method setNestedFeedables . For the unlikely case, that you've implemented this interface, you have to implement the new method.

  • Method getType of the interface com.coremedia.cap.feeder.FeedableElement may return the new value FeedableElement#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 field feederstate for nested documents.

(CMS-10950)

Search Results

Table Of Contents