Page Designer pages and components are content assets, but they're not assigned to
folders. To make them searchable, you must extend the ContentSearchModel
to
remove the folder filter. To find Page Designer pages and components using content
suggestions, you must remove the folder filter from the
SuggestModel
.
For example, in the Storefront Reference Architecture (SFRA)
searchHelpers.js file, we could add the following line to the
setupContentSearch
function so that searching can find content
assets that are not in folders:
apiContentSearchModel.setFilteredByFolder(false);
The modified setupContentSearch
function is as follows:
function setupContentSearch(params) {
var ContentSearchModel = require('dw/content/ContentSearchModel');
var ContentSearch = require('*/cartridge/models/search/contentSearch');
var apiContentSearchModel = new ContentSearchModel();
apiContentSearchModel.setRecursiveFolderSearch(true);
apiContentSearchModel.setSearchPhrase(params.q);
apiContentSearchModel.setFilteredByFolder(false);
apiContentSearchModel.search();
var contentSearchResult = apiContentSearchModel.getContent();
var count = Number(apiContentSearchModel.getCount());
var contentSearch = new ContentSearch(contentSearchResult, count, params.q, params.startingPage, null);
return contentSearch;
}
In the Storefront Reference Architecture (SFRA) SearchServices.js
file, we could set the setFilteredByFolder
attribute of the
SuggestModel
to false so that content assets that are not in
folders can be found using content suggestions:
suggestions.setFilteredByFolder(false);
The modified code is as follows:
if (searchTerms && searchTerms.length >= minChars) {
suggestions = new SuggestModel();
suggestions.setFilteredByFolder(false);
suggestions.setSearchPhrase(searchTerms);
suggestions.setMaxSuggestions(maxSuggestions);
categorySuggestions = new CategorySuggestions(suggestions, maxSuggestions);
}