Search policies

Current version: 9.2

The Commerce Engine encompasses extensible services that enable you to customize commerce functionality.


Do not extend or inherit from out-of-the-box policies; instead, create your own. You can change the values in a policy by modifying the PolicySet JSON or the Environment JSON, depending on where the policy is defined and then re-running Bootstrap.

The following policies can be configured through the Search plug-in.



Properties / Default Values


Defines which View fields to index for a particular entity.

Each indexable EntityType can have an IndexableView that the Commerce Engine retrieves to determine which entity properties to index. For a specific view, each ViewProperty (i.e., field) must have an Indexable policy that defines the settings for the index, which fields the index has, their type, whether they are searchable, filterable, and so on.

Each field to be indexed must have the following properties defined in the Indexable policy:

  • IsKey

  • IsSearchable

  • IsFilterable

  • IsSortable

  • IsFacetable

  • IsRetrievable

The indexing blocks use the values set for the field’s properties to build the index and update/insert documents into the index.


The isKey property can only be set to true for one field. If multiple fields have the isKey property set to true, validation fails when the minion creates or updates the index.

SearchScopeName \

Properties \ ConcurrentDictionary<string, IndexableSettings>


Defines the names of the search view actions.

Search \ "Search"

DeleteSearchIndex \"DeleteSearchIndex"

UpdateSearchIndex \"UpdateSearchIndex"

CreateSearchIndex \"CreateSearchIndex"


Defines the names of the search views.

Documents \ "Documents"

Document \ "Document"

Search \ "Search"

SearchResults \"SearchResults"

SearchResult \ "SearchResult"

Indexes \ "Indexes"

Index \ "Index"


Defines the type of entity to be added to the index.

Indexing minions use the SearchScope policy to ensure that the appropriate entity types are put into indexable lists. When commerce entities are persisted, the index minion checks the entity type against the Search Scope policy. If the policy specifies the relevant entity type, the minion adds the entity to the incremental list specified in the policy.

The policy also defines a set of tags that can be used to add or remove data from the search results, and specifies the list to watch for updates to the entity.

Name \

IncrementalListName \

FullListName \

EntityTypeNames \

DeletedListName \

ResultDetailsTags \List<Tag>()


Defines the settings for the search and search results entity views.

When a view is requested, a block in the IGetEntityViewPipeline checks for a SearchViewPolicy for the requested view. If a SearchViewPolicy is found, the pipeline adds the search view as a child of the requested view.

SearchScopeName \

ViewName \

PageSize \ 10

PageSizeOptions \ List<int> { 5, 10, 25, 100 }


Maps system types to Azure DataTypes.


Defines the search policy for the Azure search provider.





Defines the search policy for the SOLR search provider.







Do you have some feedback for us?

If you have suggestions for improving this article,