silverstripe/silverstripe-forager-subsites

Add support for Silverstripe Subsites to silverstripe/silverstripe-forager

Installs: 14

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0

Type:silverstripe-vendormodule

pkg:composer/silverstripe/silverstripe-forager-subsites

dev-main 2025-11-12 07:51 UTC

This package is auto-updated.

Last update: 2025-11-12 07:51:19 UTC


README

By default, all subsites content will be indexed together. In some cases you may want to split each subsite's content into a separate engine or only want to index a single subsite.

Configuration

Basic Usage

To split each subsite into its own index, use the following configuration:

SilverStripe\Forager\Service\IndexConfiguration:
  indexes:
    content-subsite0:
      subsite_id: 0
      context: subsite
      includeClasses:
        Page: &page_defaults
          fields:
            title: true
            content: true
            summary: true
        My\Other\Class: &other_class_defaults
          fields:
            title:
              property: Title
            summary:
              property: Summary
    content-subsite4:
      subsite_id: 4 # or you can use an environment variable such as 'NAME_OF_ENVIRONMENT_VARIABLE'
      context: subsite
      includeClasses:
        Page:
          <<: *page_defaults
        My\Other\Class:
          <<: *other_class_defaults

Note: The YAML anchor syntax (&page_defaults and <<: *page_defaults) reduces the need for copy-paste when you want to duplicate the same configuration across multiple indexes.

Additional note:

In the sample above, if the data object (My\Other\Class) does not have a subsite ID, then it will be included in the indexing as it is explicitly defined in the index configuration

Configuration Options

Subsite ID

The subsite_id key specifies which subsite's content to index.

  • subsite_id: all Indexes content from all subsites.
  • subsite_id: <number> Indexes content only for the specified subsite (e.g. subsite_id: 0 for the main site, subsite_id: 4 for subsite with ID 4).

For some jobs we require the context to be set to subsite in order for it to correctly filter.

Context

The context key controls how the IndexDataContextProvider sets the state during indexing operations.

Setting the context to subsite will set the subsite state during indexing to the what is specified within the index data.