--- title: About the coveoIndexingGetFields pipeline slug: '2557' canonical_url: https://docs.coveo.com/en/2557/ collection: coveo-for-sitecore-v5 source_format: adoc --- # About the coveoIndexingGetFields pipeline This article explains how Coveo determines which fields should be indexed and how it leverages the `coveoIndexingGetFields` pipeline. ## Default processing sequence diagram The diagram below shows the default sequence in which the processors are invoked. All processors are interchangeable. For the assembly-qualified type name of each processor, see [Processors assembly-qualified type names](#processors-assembly-qualified-type-names). ![Coveo Indexing Get Fields | Coveo for Sitecore 5](https://docs.coveo.com/en/assets/images/c4sc-v5/coveo-indexing-get-fields.png) . The `AddSpecialFieldsProcessor` processor retrieves some built-in Sitecore fields such as `_id`, `_name`, `_templatename`, and so on. These fields are used by the Coveo filtering rules. > **Note** > > This processor is mandatory, as Coveo for Sitecore relies on the fields it defines. . The `AddComputedFieldsProcessor` processor retrieves the computed fields that are defined in the `` element. By default, this list contains a series of computed fields used by the Coveo filtering rules. You can also [create your own computed fields](https://docs.coveo.com/en/2251/). > **Note** > > This processor is mandatory, as Coveo for Sitecore relies on the fields it defines . The `AddAnalyticsFieldsProcessor` appends Sitecore fields related to experience profiles and personalization. > **Note** > > This processor is mandatory if you're using [personalization features](https://docs.coveo.com/en/2628/). . The `IncludeFieldsFromConfigOnlyProcessor` processor retrieves the fields that are defined in the `` element. When at least one field is marked as included, the field is added to the list of fields to index, and then the pipeline is aborted. In other words, no more processors are invoked (see [Including or excluding fields from the indexing](https://docs.coveo.com/en/2499#including-or-excluding-fields-from-the-indexing)). . The `AddExternalFieldsProcessor` appends the fields defined in the `raw:AddExternalField` node. This processor is used to include fields coming from external Coveo sources (see [About the Coveo Search Provider configuration file - externalFields](https://docs.coveo.com/en/2562#externalfields)). . The `AddFieldMapFieldsProcessor` updates the parameters of the fields defined in the `raw:AddFieldByFieldName` node (see [About the Coveo Search Provider configuration file - FieldMap](https://docs.coveo.com/en/2562#fieldmap)). . The `ExcludeFieldsFromConfigProcessor` excludes all the fields that are defined in the `` element. > **Leading practice** > > This processor is slow when many fields are configured in your Sitecore setup. > If you're currently using this processor to exclude fields from being indexed, switch to the [field inclusion approach](https://docs.coveo.com/en/2499/) for better performance. The processors can be reordered according to your specific needs. You can also add your own custom processors. ## Processors assembly-qualified type names |=== | Processor name | Assembly-qualified type name | AddSpecialFieldsProcessor | `Coveo.AbstractLayer.Processors.Indexing.Fields.AddSpecialFieldsProcessor, Coveo.AbstractLayer` | AddAnalyticsFieldsProcessor | `Coveo.AbstractLayer.Processors.Indexing.Fields.AddAnalyticsFieldsProcessor, Coveo.AbstractLayer` | AddComputedFieldsProcessor | `Coveo.AbstractLayer.Processors.Indexing.Fields.AddComputedFieldsProcessor, Coveo.AbstractLayer` | IncludeFieldsFromConfigOnlyProcessor | `Coveo.AbstractLayer.Processors.Indexing.Fields.IncludeFieldsFromConfigOnlyProcessor, Coveo.AbstractLayer` | AddExternalFieldsProcessor | `Coveo.AbstractLayer.Processors.Indexing.Fields.AddExternalFieldsProcessor, Coveo.AbstractLayer` | AddFieldMapFieldsProcessor | `Coveo.AbstractLayer.Processors.Indexing.Fields.AddFieldMapFieldsProcessor, Coveo.AbstractLayer` | ExcludeFieldsFromConfigProcessor | `Coveo.AbstractLayer.Processors.Indexing.Fields.ExcludeFieldsFromConfigProcessor, Coveo.AbstractLayer` |=== ## Creating a custom processor for the `coveoIndexingGetFields` pipeline To compile the class, reference the following assemblies: * `Coveo.AbstractLayer` * `Coveo.Framework` * `Sitecore.Kernel` This sample code adds the field `myFieldName` to the list of indexed fields. The field then appears in the search index field set. [source,c#] ``` public class AddCustomField : Coveo.Framework.Processor.IProcessor { public void Process(CoveoIndexingGetFieldsArgs p_Args) { // The fields are stored in the "Fields" property and can be added or removed. // A field can be added by passing its Sitecore name and type. Coveo.AbstractLayer.FieldManagement.FieldInformation newField = new Coveo.AbstractLayer.FieldManagement.FieldInformation("myFieldName", "Single-Line Text"); p_Args.Fields.Add(newField); } } ```