Indexer operations (Azure Cognitive Search REST API)

An indexer is a resource that crawls an Azure data source and loads search documents into a target search index. Indexers read from an external source using connection information you provide in a data source, and serialize the incoming data into JSON search documents. In addition to a data source, an indexer also requires an index. The index specifies the fields and attributes of the search documents.

Indexers can run on demand or on a schedule, and depending on the data source, can honor the native change detection functionality of the underlying data source so that data refresh picks up just the changed data.

Depending on the service tier, a search service has a maximum limit on the number of indexers and data sources that you can create. For more information, see Service Limits.

Typical workflow

Using an indexer is efficient, removing the need to write code to index your data. You can create and manage indexers and data sources via simple HTTP requests (POST, GET, PUT, DELETE) against a given data source or indexer resource.

Setting up automatic indexing is typically a four step process:

  1. Identify the data source that contains the data that needs to be indexed. Indexers only work with certain Azure data platforms. For more information, see Supported data source.

  2. Create search index whose schema is compatible with your data source.

  3. Create a data source to provide connection information.

  4. Create an indexer to specify the data source, index, and other properties and parameters used during indexing.

You should plan on creating one indexer for every target index and data source combination. You can have multiple indexers writing into the same index, and you can reuse the same data source for multiple indexers. However, an indexer can only consume one data source at a time, and can only write to a single index. As the following graphic illustrates, one data source provides input to one indexer, which then populates a single index:

Data Source, Indexer, Index chain in Azure Cognitive Search

Although you can only use one indexer at a time, resources can be used in different combinations. The main takeaway of the next illustration is to notice is that a data source can be paired with more than one indexer, and multiple indexers can write to same index.

Resource combinations used in indexers

After creating an indexer, you can retrieve its execution status using the Get Indexer Status operation.

See also