You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/search/search-howto-run-reset-indexers.md
+16-19Lines changed: 16 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,34 +21,17 @@ In Azure Cognitive Search, there are several ways to run an indexer:
21
21
22
22
This article explains how to run indexers on demand, with and without a reset.
23
23
24
-
## Run without reset
25
-
26
-
A [Run Indexer](/rest/api/searchservice/run-indexer) operation will detect and process only what it necessary to synchronize the search index with changes in the underlying data source. Incremental indexing starts by locating an internal high-water mark to find the last updated search document, which becomes the starting point for indexer execution over new and updated documents in the data source.
27
-
28
-
[Change detection](search-howto-create-indexers.md#change-detection-and-internal-state) is essential for determining what's new or updated in the data source. Indexers use the change detection capabilities of the underlying data source to determine what's new or updated in the data source.
29
-
30
-
+ Azure Storage has built-in change detection through its LastModified property.
31
-
32
-
+ Other data sources, such as Azure SQL or Azure Cosmos DB, have to be configured for change detection before the indexer can read new and updated rows.
33
-
34
-
If the underlying content is unchanged, a run operation has no effect. In this case, indexer execution history will indicate `0\0` documents processed.
35
-
36
-
You'll need to [reset the indexer](#resetting-indexers) if want to reprocess in full.
37
-
38
24
## Indexer execution
39
25
40
26
You can run multiple indexers at one time, but each indexer itself is single-instance. Starting a new instance while the indexer is already in execution produces this error: `"Failed to run indexer "<indexer name>" error: "Another indexer invocation is currently in progress; concurrent invocations are not allowed."`
41
27
42
-
An indexer job runs in a managed execution environment. Currently, there are two environments. You can't control or configure which environment is used. Azure Cognitive Search determines the environment based on job complexity, duration, and the ability of the service to move an indexer job onto a content processor (some security features block the multi-tenant environment).
28
+
An indexer job runs in a managed execution environment. Currently, there are two environments. You can't control or configure which environment is used. Azure Cognitive Search determines the environment based on job composition and the ability of the service to move an indexer job onto a content processor (some [security features](search-indexer-securing-resources.md#indexer-execution-environment) block the multi-tenant environment).
43
29
44
30
Indexer execution environments include:
45
31
46
32
+ A private execution environment that runs on search nodes, specific to your search service.
47
33
48
-
+ A multi-tenant environment with content processors, managed and secured by Microsoft at no extra cost. This environment is used to offload computationally intensive processing, leaving service-specific resources available for routine operations. Whenever possible, most indexer jobs are executed in the multi-tenant environment.
49
-
50
-
> [!NOTE]
51
-
> The multi-tenant environment was initially a way to offload skillset processing. Over time, as the efficiency and benefits of offloading became clear, the use of content processors expanded to include text-based indexing as well.
34
+
+ A multi-tenant environment with content processors, managed and secured by Microsoft at no extra cost. This environment is used to offload computationally intensive processing, leaving service-specific resources available for routine operations. Whenever possible, most indexer jobs are executed in the multi-tenant environment.
52
35
53
36
Indexer limits vary for each environment:
54
37
@@ -63,6 +46,20 @@ Indexer limits vary for each environment:
63
46
64
47
<sup>3</sup> "Indeterminate" means that the limit isn't quantified by the number of jobs. Some workloads, such as skillset processing, can run in parallel which could result in many jobs even though only one indexer is involved. Although the environment doesn't impose constraints, [indexer limits](search-limits-quotas-capacity.md#indexer-limits) for your search service still apply.
65
48
49
+
## Run without reset
50
+
51
+
A [Run Indexer](/rest/api/searchservice/run-indexer) operation will detect and process only what it necessary to synchronize the search index with changes in the underlying data source. Incremental indexing starts by locating an internal high-water mark to find the last updated search document, which becomes the starting point for indexer execution over new and updated documents in the data source.
52
+
53
+
[Change detection](search-howto-create-indexers.md#change-detection-and-internal-state) is essential for determining what's new or updated in the data source. Indexers use the change detection capabilities of the underlying data source to determine what's new or updated in the data source.
54
+
55
+
+ Azure Storage has built-in change detection through its LastModified property.
56
+
57
+
+ Other data sources, such as Azure SQL or Azure Cosmos DB, have to be configured for change detection before the indexer can read new and updated rows.
58
+
59
+
If the underlying content is unchanged, a run operation has no effect. In this case, indexer execution history will indicate `0\0` documents processed.
60
+
61
+
You'll need to reset the indexer, as explained in the next section, to reprocess in full.
62
+
66
63
## Resetting indexers
67
64
68
65
After the initial run, an indexer keeps track of which search documents have been indexed through an internal *high-water mark*. The marker is never exposed, but internally the indexer knows where it last stopped.
0 commit comments