loading table of contents...

7.3. Website Search

This section describes the configuration of the search functionality of the Brand Blueprint website.

Configuring search in content settings

Some aspects of website search are configurable in a site-specific Settings document. The site's root channel links to the Settings document SearchConfiguration with the settings used for that site.

SearchConfiguration Settings document

Figure 7.6. SearchConfiguration Settings document


It contains the following settings:

Settings Property Description

searchChannel

The channel used to render the search result page.

searchAction

Content of type CMAction with ID "search".

search.result.hitsPerPage

The number of hits shown on the search result page.

search.doctypeselect

The content types that appear in the search result. Subtypes must be listed explicitly.

caefeederSiteConfiguration

Contains the value corporate to select the CAE Feeder Brand Blueprint configuration for indexing content of the site. This enables page grid indexing as described in the next section.

Table 7.1. Brand website search settings


Configuring page grid indexing

The Brand Blueprint CAE Feeder feeds CMChannel documents to the search engine so that pages can be found on the website. To this end, the CAE Feeder configuration specifies which parts of a page grid need to be indexed. This includes the configuration of relevant page grid sections, content types of linked contents and their properties.

[Note]Note

Read section Section 6.3.4, “Page Assembly” for an introduction to page grids.

The Brand Blueprint CAE Feeder is configured in the Spring bean definition file component-corporate-caefeeder.xml and its accompanied properties file corporate-caefeeder.properties in directory src/main/resources/META-INF/coremedia of the Blueprint module modules/extensions/corporate/corporate-caefeeder-component. The Spring XML file imports the content bean definitions and defines the following FeedablePopulators to index the page grid:

The PageGridFeedablePopulator takes properties from content linked in the page grid and adds them to the textbody index field when feeding a CMChannel. It is configured to feed the teaser properties of linked documents except for articles linked with view type "Detail" in which case the full article text is indexed with the channel. The PageGridInlineContentFeedablePopulator ensures that articles that are linked with view type "Detail" are not returned by the website search in addition to their page. To this end, it sets the index field notsearchable to true for such articles.

If a page grid placement contains a CMCollection document, then the contents linked in its items property are included as well - just as if they were linked directly in the page grid.

The mentioned FeedablePopulators are only used for documents if their site has a settings document that defines the setting caefeederSiteConfiguration with value corporate. This is the case for Brand Blueprint sites. The Spring application context file component-corporate-caefeeder.xml configures the site-specific activation of page grid feeding by adding the FeedablePopulators to the bean siteSpecificFeedablePopulatorMap for the value corporate.

The Brand Blueprint comes with a default configuration for indexing page grids of CMChannel documents. If needed, you can change the configuration in component-corporate-caefeeder.xml and corporate-caefeeder.properties. The following table describes the used Spring properties. All properties start with the prefix corporate.search.pageGrid which is abbreviated with [c.s.p] below.

Property Description

[c.s.p].contentType

The type of the contents with indexed page grid.

Default: CMChannel

[c.s.p].name

The name of the struct property that contains the page grid.

Default: placement

[c.s.p].excludedSections

Comma-separated list of ignored page grid sections.

Default: header, footer, sidebar

[c.s.p].itemContentTypes

Comma-separated list of content types of considered page grid items. Contents of other types that are linked in the page grid are ignored and not indexed with the page grid.

Default: CMChannel, CMArticle, CMTeaser, CMCollection, CMVideo, CMDownload, CMExternalLink, CMProduct

[c.s.p].itemTextProperties

The content properties of page grid items with a view type other than "Detail" that are indexed in the index field textbody of the page. This property takes a space separated string of document type properties. For each configured document type, the name of the type followed by an equal sign and a comma-separated list of property names is given. The configuration for the most specific document type of an item decides which item properties are used. The property lists are not merged with configurations for super types. This makes it possible to ignore properties in subtypes.

Default: CMTeasable=teaserTitle,teaserText CMProduct=productName,shortDescription

[c.s.p].itemValidFromProperty [c.s.p].itemValidToProperty

The name of the date properties for visibility as described in Section 6.3.17, “Content Visibility”. Content that is not currently visible is not indexed with the page. The CAE Feeder automatically reindexes after visibility has changed.

Default: validFrom / validTo

[c.s.p].inlineContentTypes

Comma-separated list of content types used in the page grid with view type "Detail" for which the text properties are indexed with the page grid instead of the teaser properties.

Default: CMArticle

[c.s.p].inlineContentViewType

The technical name of the "Detail" view type.

Default: full-details

[c.s.p].inlineContentTextProperties

The content properties of page grid items with view type "Detail" that are indexed in the index field textbody of the page. This property takes a space separated string of document type properties. For each configured document type, the name of the type followed by an equal sign and a comma-separated list of property names is given. The configuration for the most specific document type of an item decides which item properties are used. The property lists are not merged with configurations for super types. This makes it possible to ignore properties in subtypes.

Default: CMArticle=title,detailText

[c.s.p].collectionContentType

The content type of collection documents used in the page grid.

Default: CMCollection

[c.s.p].collectionItemsProperty

The link property of collection documents to get the items of a collection.

Default: items

[c.s.p].collectionViewTypeProperty

The link property of collection documents to get the view type for the items of a collection.

Default: viewtype

[c.s.p].configId

An identifier that represents the configuration options.

Default: corporate

Table 7.2. Page Grid Indexing Spring Properties


[Note]Note

Note that you must reindex from scratch with empty CAE Feeder database to apply the changes of the above configuration properties to all indexed documents. If it is okay to just apply the changes to newly indexed documents and if you don't reindex with empty CAE Feeder database, then you need to change the value of the [c.s.p].configId property to some other string constant, if you've changed one of the following properties (all starting with [c.s.p].): name, excludedSections, itemContentTypes, itemValidFromProperty, itemValidToProperty.