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-api-migration.md
+45-24Lines changed: 45 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,11 +17,15 @@ ms.date: 11/19/2024
17
17
18
18
# Upgrade to the latest REST API in Azure AI Search
19
19
20
-
Use this article to migrate data plane calls to newer versions of the [**Search REST APIs**](/rest/api/searchservice/).
20
+
Use this article to migrate data plane calls to newer versions of the [**Search REST APIs**](/rest/api/searchservice/) and management plane calls to newer version of the [**Search Management REST APIs**](/rest/api/searchmanagement/)
21
21
22
-
+[`2024-07-01`](/rest/api/searchservice/search-service-api-versions#2024-07-01) is the most recent stable version.
22
+
+[`2024-07-01`](/rest/api/searchservice/search-service-api-versions#2024-07-01) is the most recent stable data plane API version.
23
23
24
-
+[`2024-11-01-preview`](/rest/api/searchservice/search-service-api-versions#2024-11-01-preview) is the most recent preview API version.
24
+
+[`2024-11-01-preview`](/rest/api/searchservice/search-service-api-versions#2024-11-01-preview) is the most recent preview data plane API version.
25
+
26
+
+[`2023-11-01`](/rest/api/searchmanagement/operation-groups?view=rest-searchmanagement-2023-11-01) is the most recent stable management plane API version.
27
+
28
+
+[`2024-03-01-preview`](/rest/api/searchmanagement/operation-groups?view=rest-searchmanagement-2024-03-01-preview) is the most recent preview management plane API version.
25
29
26
30
Upgrade instructions focus on code changes that get you through breaking changes from previous versions so that existing code runs the same as before, but on the newer API version. Once your code is in working order, you can decide whether to adopt newer features. To learn more about new features, see [vector code samples](https://github.com/Azure/azure-search-vector-samples) and [What's New](whats-new.md).
27
31
@@ -44,17 +48,17 @@ Azure AI Search breaks backward compatibility as a last resort. Upgrade is neces
44
48
45
49
## How to upgrade
46
50
47
-
1.Review the [release notes](/rest/api/searchservice/search-service-api-versions) for each API version.
51
+
1.If you are upgrading a data plane version, review the [release notes](/rest/api/searchservice/search-service-api-versions) for the new API version.
48
52
49
53
1. Update the `api-version` parameter, specified in the request header, to a newer version.
50
54
51
55
In your application code that makes direct calls to the REST APIs, search for all instances of the existing version and then replace it with the new version. For more information about structuring a REST call, see [Quickstart: using REST](search-get-started-rest.md#set-up-visual-studio-code).
52
56
53
57
If you're using an Azure SDK, those packages target specific versions of the REST API. Package updates might coincide with a REST API update, but each SDK is on its own release schedule that ships independently of Azure AI Search REST API versions. Check the change log of your SDK package to determine whether a package release targets the latest REST API version.
54
58
55
-
1.Review the breaking changes documented in this article and implement the workarounds. Start with the version used by your code and resolve any breaking change for each newer API version until you get to the newest stable or preview release.
59
+
1.If you are upgrading a data plane version, review the breaking changes documented in this article and implement the workarounds. Start with the version used by your code and resolve any breaking change for each newer API version until you get to the newest stable or preview release.
56
60
57
-
## Breaking change for client code that reads connection information
61
+
## Breaking change for data plane client code that reads connection information
58
62
59
63
Effective March 29, 2024 and applicable to all [supported REST APIs](/rest/api/searchservice/search-service-api-versions):
60
64
@@ -74,7 +78,9 @@ Effective March 29, 2024 and applicable to all [supported REST APIs](/rest/api/s
74
78
75
79
See [Migrate from preview version](semantic-code-migration.md) to transition your code to use `semanticConfiguration`.
76
80
77
-
## Upgrade to 2024-11-01-preview
81
+
## Data plane upgrades
82
+
83
+
### Upgrade to 2024-11-01-preview
78
84
79
85
[`2024-11-01-preview`](/rest/api/searchservice/search-service-api-versions#2024-11-01-preview) query rewrite, Document Layout skill, keyless billing for skills processing, Markdown parsing mode, and rescoring options for compressed vectors.
80
86
@@ -87,21 +93,21 @@ However, the new version introduces syntax changes to `vectorSearch.compressions
87
93
88
94
Backwards compatibility is preserved due to an internal API mapping, but we recommend changing the syntax if you adopt the new preview version. For a comparison of the syntax, see [Compress vectors using scalar or binary quantization](vector-search-how-to-quantization.md#add-compressions-to-a-search-index).
89
95
90
-
## Upgrade to 2024-09-01-preview
96
+
###Upgrade to 2024-09-01-preview
91
97
92
98
[`2024-09-01-preview`](/rest/api/searchservice/search-service-api-versions#2024-09-01-preview) adds Matryoshka Representation Learning (MRL) compression for text-embedding-3 models, targeted vector filtering for hybrid queries, vector subscore details for debugging, and token chunking for [Text Split skill](cognitive-search-skill-textsplit.md).
93
99
94
100
If you're upgrading from `2024-05-01-preview`, you can use the new preview APIs with no change to existing code.
95
101
96
-
## Upgrade to 2024-07-01
102
+
###Upgrade to 2024-07-01
97
103
98
104
[`2024-07-01`](/rest/api/searchservice/search-service-api-versions#2024-07-01) is a general release. The former preview features are now generally available: integrated chunking and vectorization (Text Split skill, AzureOpenAIEmbedding skill), query vectorizer based on AzureOpenAIEmbedding, vector compression (scalar quantization, binary quantization, stored property, narrow data types).
99
105
100
106
There are no breaking changes if you upgrade from `2024-05-01-preview` to stable. To use the new stable release, change the API version and test your code.
101
107
102
108
There are breaking changes if you upgrade directly from `2023-11-01`. Follow the steps outlined for each newer preview to migrate from `2023-11-01` to `2024-07-01`.
103
109
104
-
## Upgrade to 2024-05-01-preview
110
+
###Upgrade to 2024-05-01-preview
105
111
106
112
[`2024-05-01-preview`](/rest/api/searchservice/search-service-api-versions#2024-05-01-preview) adds OneLake index, support for binary vectors, and support for more embedding models.
107
113
@@ -111,7 +117,7 @@ If you're upgrading from `2024-03-01-preview`, the AzureOpenAIEmbedding skill no
111
117
112
118
1. Set `modelName` to "text-embedding-ada-002" and set `dimensions` to "1536".
113
119
114
-
## Upgrade to 2024-03-01-preview
120
+
###Upgrade to 2024-03-01-preview
115
121
116
122
[`2024-03-01-preview`](/rest/api/searchservice/search-service-api-versions#2024-03-01-preview) adds narrow data types, scalar quantization, and vector storage options.
117
123
@@ -121,27 +127,27 @@ If you're upgrading from `2023-10-01-preview`, there are no breaking changes. Ho
121
127
122
128
1. If the property is explicitly set, no action is required. If you used the default, be aware that the new default behavior is to filter before query execution. If you want post-query filtering, explicitly set `vectorFilterMode` to postfilter to retain the old behavior.
123
129
124
-
## Upgrade to 2023-11-01
130
+
###Upgrade to 2023-11-01
125
131
126
132
[`2023-11-01`](/rest/api/searchservice/search-service-api-versions#2023-11-01) is a general release. The former preview features are now generally available: semantic ranker, vector index and query support.
127
133
128
134
There are no breaking changes from `2023-10-01-preview`, but there are multiple breaking changes from `2023-07-01-preview` to `2023-11-01`. For more information, see [Upgrade from 2023-07-01-preview](#upgrade-from-2023-07-01-preview).
129
135
130
136
To use the new stable release, change the API version and test your code.
131
137
132
-
## Upgrade to 2023-10-01-preview
138
+
###Upgrade to 2023-10-01-preview
133
139
134
140
[`2023-10-01-preview`](/rest/api/searchservice/search-service-api-versions#2023-10-01-preview) was the first preview version to add [built-in data chunking and vectorization during indexing](vector-search-integrated-vectorization.md) and [built-in query vectorization](vector-search-how-to-configure-vectorizer.md). It also supports vector indexing and queries from the previous version.
135
141
136
142
If you're upgrading from the previous version, the next section has the steps.
137
143
138
-
## Upgrade from 2023-07-01-preview
144
+
###Upgrade from 2023-07-01-preview
139
145
140
146
Don't use this API version. It implements a vector query syntax that's incompatible with any newer API version.
141
147
142
148
`2023-07-01-preview` is now deprecated, so you shouldn't base new code on this version, nor should you upgrade *to* this version under any circumstances. This section explains the migration path from `2023-07-01-preview` to any newer API version.
143
149
144
-
### Portal upgrade for vector indexes
150
+
####Portal upgrade for vector indexes
145
151
146
152
Azure portal supports a one-click upgrade path for `2023-07-01-preview` indexes. It detects vector fields and provides a **Migrate** button.
147
153
@@ -153,7 +159,7 @@ There's no portal migration for upgrading vector query syntax. See [code upgrade
153
159
154
160
Before selecting **Migrate**, select **Edit JSON** to review the updated schema first. You should find a schema that conforms to the changes described in the [code upgrade](#code-upgrade-for-vector-indexes-and-queries) section. Portal migration only handles indexes with one vector search algorithm configuration. It creates a default profile that maps to the `2023-07-01-preview` vector search algorithm. Indexes with multiple vector search configurations require manual migration.
155
161
156
-
### Code upgrade for vector indexes and queries
162
+
####Code upgrade for vector indexes and queries
157
163
158
164
[Vector search](vector-search-overview.md) support was introduced in [Create or Update Index (2023-07-01-preview)](/rest/api/searchservice/preview-api/create-or-update-index).
159
165
@@ -317,25 +323,25 @@ Use the instructions in this section to migrate vector fields, configuration, an
317
323
318
324
These steps complete the migration to `2023-11-01` stable API version or newer preview API versions.
319
325
320
-
## Upgrade to 2020-06-30
326
+
### Upgrade to 2020-06-30
321
327
322
328
In this version, there's one breaking change and several behavioral differences. Generally available features include:
323
329
324
330
+ [Knowledge store](knowledge-store-concept-intro.md), persistent storage of enriched content created through skillsets, created for downstream analysis and processing through other applications. A knowledge store is created through Azure AI Search REST APIs but it resides in Azure Storage.
325
331
326
-
### Breaking change
332
+
#### Breaking change
327
333
328
334
Code written against earlier API versions breaks on `2020-06-30` and later if code contains the following functionality:
329
335
330
336
+ Any `Edm.Date` literals (a date composed of year-month-day, such as `2020-12-12`) in filter expressions must follow the `Edm.DateTimeOffset` format: `2020-12-12T00:00:00Z`. This change was necessary to handle erroneous or unexpected query results due to timezone differences.
331
337
332
-
### Behavior changes
338
+
#### Behavior changes
333
339
334
340
+ [BM25 ranking algorithm](index-ranking-similarity.md) replaces the previous ranking algorithm with newer technology. Services created after 2019 use this algorithm automatically. For older services, you must set parameters to use the new algorithm.
335
341
336
342
+ Ordered results for null values have changed in this version, with null values appearing first if the sort is `asc` and last if the sort is `desc`. If you wrote code to handle how null values are sorted, be aware of this change.
337
343
338
-
## Upgrade to 2019-05-06
344
+
### Upgrade to 2019-05-06
339
345
340
346
Features that became generally available in this API version include:
341
347
@@ -344,7 +350,7 @@ Features that became generally available in this API version include:
344
350
+ [JsonLines parsing modes](search-howto-index-json-blobs.md), part of Azure Blob indexing, creates one search document per JSON entity that is separated by a newline.
345
351
+ [AI enrichment](cognitive-search-concept-intro.md) provides indexing that uses the AI enrichment engines of Azure AI services.
346
352
347
-
### Breaking changes
353
+
#### Breaking changes
348
354
349
355
Code written against an earlier API version breaks on `2019-05-06` and later if it contains the following functionality:
350
356
@@ -356,7 +362,7 @@ Code written against an earlier API version breaks on `2019-05-06` and later if
356
362
357
363
1. Named Entity Recognition cognitive skill is retired. If you called the [Name Entity Recognition](cognitive-search-skill-named-entity-recognition.md) skill in your code, the call fails. Replacement functionality is [Entity Recognition Skill (V3)](cognitive-search-skill-entity-recognition-v3.md). Follow the recommendations in [Deprecated skills](cognitive-search-skill-deprecated.md) to migrate to a supported skill.
358
364
359
-
### Upgrading complex types
365
+
#### Upgrading complex types
360
366
361
367
API version `2019-05-06` added formal support for complex types. If your code implemented previous recommendations for complex type equivalency in 2017-11-11-Preview or 2016-09-01-Preview, there are some new and changed limits starting in version `2019-05-06` of which you need to be aware:
362
368
@@ -366,7 +372,7 @@ API version `2019-05-06` added formal support for complex types. If your code im
366
372
367
373
For more information, see [Service limits for Azure AI Search](search-limits-quotas-capacity.md).
368
374
369
-
#### How to upgrade an old complex type structure
375
+
##### How to upgrade an old complex type structure
370
376
371
377
If your code is using complex types with one of the older preview API versions, you might be using an index definition format that looks like this:
372
378
@@ -416,7 +422,22 @@ You can update flat indexes to the new format with the following steps using API
416
422
> [!NOTE]
417
423
> It is not possible to manage indexes created with the old "flat" format from the Azure portal. Please upgrade your indexes from the “flat” representation to the “tree” representation at your earliest convenience.
418
424
419
-
## Next steps
425
+
## Management plane upgrades
426
+
427
+
### Upgrading from 2014-07-31-Preview, 2015-02-28, and 2015-08-19
428
+
429
+
The `listQueryKeys` operation is deprecated on these API versions. It's recommended to update to the latest stable management plane API versopm to use the `listQueryKeys` operation.
430
+
431
+
1. If you are using a REST request, in addition to changing the `api-version` parameter, it's necessary to switch from `GET` to `POST`
432
+
433
+
```
434
+
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}/listQueryKeys?api-version=2023-11-01
435
+
Authorization: Bearer {{token}}
436
+
```
437
+
438
+
2. If you are using the Azure SDK, it's recommended to update to the latest version.
439
+
440
+
### Next steps
420
441
421
442
Review the Search REST API reference documentation. If you encounter problems, ask us for help on [Stack Overflow](https://stackoverflow.com/) or [contact support](https://azure.microsoft.com/support/community/?product=search).
|[Security update addressing information disclosure](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-29063)| API | GET responses [no longer return connection strings or keys](search-api-migration.md#breaking-change-for-client-code-that-reads-connection-information). Applies to GET Skillset, GET Index, and GET Indexer. This change helps protect your Azure assets integrated with AI Search from unauthorized access. |
107
+
|[Security update addressing information disclosure](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-29063)| API | GET responses [no longer return connection strings or keys](search-api-migration.md#breaking-change-for-data-plane-client-code-that-reads-connection-information). Applies to GET Skillset, GET Index, and GET Indexer. This change helps protect your Azure assets integrated with AI Search from unauthorized access. |
108
108
|[More storage on Basic and Standard tiers](search-limits-quotas-capacity.md#service-limits)| Infrastructure | Basic now supports up to three partitions and three replicas. Basic and Standard (S1, S2, S3) tiers have significantly more storage per partition, at the same per-partition billing rate. Extra capacity is subject to [regional availability](search-limits-quotas-capacity.md#service-limits) and applies to new search services created after April 3, 2024. Currently, there's no in-place upgrade, so you must create a new search service to get the extra storage. |
109
109
|[More quota for vectors](search-limits-quotas-capacity.md#vector-index-size-limits)| Infrastructure | Vector quotas are also higher on new services created after April 3, 2024 in selected regions. |
110
110
|[Vector quantization, narrow vector data types, and a new `stored` property (preview)](vector-search-how-to-configure-compression-storage.md)| Feature | Collectively, these three features add vector compression and smarter storage options. First, *scalar quantization* reduces vector index size in memory and on disk. Second, [narrow data types](/rest/api/searchservice/supported-data-types) reduce per-field storage by storing smaller values. Third, you can use `stored` to opt-out of storing the extra copy of a vector that's used only for search results. If you don't need vectors in a query response, you can set `stored` to false to save on space. |
0 commit comments