You may be aware that you can build indexes in Azure AI Search by pulling data from known data sources, like Azure Blob storage, SQL server, OneLake, etc. When using the ‘pull’ method, the built-in indexers run either on a schedule you define or provided you trigger them on-demand at intervals of at least five minutes or longer.
What you may not realize is that there is an alternative way to send data to an index: the ‘push’ method. With this approach, the search client can push data to AI Search for initial data ingestion, incremental updates or deletions.
Push vs. Pull: Which Approach Fits Your Scenario?
Both Push and Pull methods in Azure AI Search are powerful ways to load data into an index. Each has its strengths, and the right choice depends on your requirements. Here’s how they compare:
|
Feature |
Push Model (APIs) |
Pull Model (Indexers) |
|
Control & Flexibility |
Full control over timing, batch size, and operations (upload, merge, delete). |
Limited to scheduled runs and indexer configuration. |
|
Latency |
Near real-time updates—trigger indexing as often as needed. |
Dependent on scheduled polling intervals or on-demand runs. |
|
Data Source Support |
Works with any source that can produce JSON matching your schema. |
Limited to supported connectors (Azure Blob, SQL, SharePoint, etc.). |
|
Parallelism |
Customizable—design your own pipeline for concurrency and throughput. |
Managed internally by indexer; less granular control. |
|
AI Enrichment |
Requires custom implementation if needed. |
Built-in skillsets for enrichment and integrated vectorization. |
|
Best For |
Higher-indexing performance, higher complexity orchestration; high-demanding indexing timelines. |
Rapid setup and automation where indexing frequency and performance is less critical.
|
Reference this article for more information about the Push mechanism:
Data import and data ingestion - Azure AI Search | Microsoft Learn
Push model uses APIs to upload documents into an existing search index. You can upload documents individually or in batches up to 1000 per batch, or 16MB per batch, whichever limit comes first.
Step-by-Step: Pushing Data to Your Index
Here’s an example of how to use the REST API POST method to ‘push’ the new content to existing index, and of the CURL command to search the new content.
Let’s say, you have an existing index: https://xxxxxxxxxxxxxxxx.search.windows.net
Step 1. Get search service URL from Azure portal.
Step 2. Get the index name from AI Search service.
Step 3. Get the API key from AI Search service.
Step 4. Get the index fields.
Step 5. Use POST command to ‘push’ the new content to the existing index.
Below is a POST command example. When pushing data to the index, you need to specify the field names. This code shows how to insert two new chunks with document key ‘chunk_id’ with values ‘chunk-003’ and ‘chunk-004’.
After sending the POST request, below is the result:
Step 6. Verify the new content searchable in the index.
Since the new documents were inserted as chunks, you can search by using keywords. Below is a CURL command in PowerShell.
If you have any feedback or questions about this article and how this is useful to you, don’t hesitate to reach out.
What’s next?
Learn how to push embeddings in an AI Search index for vector search.