Skip to content

Commit cf004ef

Browse files
Merge pull request #313639 from stevemunk/migrate-search
Add notable differences section to migration guide.
2 parents 700b423 + ca65ba5 commit cf004ef

2 files changed

Lines changed: 53 additions & 4 deletions

File tree

articles/azure-maps/how-to-use-best-practices-for-search.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,7 +1076,7 @@ This reduces the likelihood of low-confidence matches in unrelated regions when
10761076

10771077
##### Reworded clarity: how "up-hierarchy" results happen
10781078

1079-
When the service can't find a match at the specificity implied by the query, it may "move up the geographic hierarchy" and return a broader location (for example, city, administrative division, or country/region). In those cases, `matchCodes` includes `UpHierarchy`, and properties.type indicates what level was returned.
1079+
When the service can't find a match at the specificity implied by the query, it may "move up the geographic hierarchy" and return a broader location (for example, city, administrative division, or country/region). In those cases, `matchCodes` includes `UpHierarchy`, and [properties.type] indicates what level was returned.
10801080

10811081
##### Practical filtering guidance (apply in this order)
10821082

@@ -1094,7 +1094,7 @@ When the service can't find a match at the specificity implied by the query, it
10941094
10951095
### Use geocoding as a data enrichment step
10961096

1097-
When geocoding large address datasets, expect that some records won't return results. This is normal and doesn't indicate a service error.
1097+
Many organizations collect customer records through free‑form data entry, often without address validation. As a result, these datasets frequently contain non‑deliverable or low‑quality addresses. When geocoding large, unvalidated address sets, it is expected that some records will return weak matches or no results at all. This behavior is normal and does not indicate a service failure.
10981098

10991099
Common causes include:
11001100

articles/azure-maps/migrate-search-v1-api.md

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ms.subservice: search
1212

1313
# Migrate Azure Maps Search 1.0 APIs
1414

15-
[Search][Search v1] API version 1.0 is superseded by the [Search][Search v2026-01-01] 2026‑01‑01 API. The newer version introduces task‑specific endpoints, clearer intent, and improved scalability. This article explains how to migrate existing Search v1 integrations.
15+
[Search][Search v2026-01-01] API version 2026‑01‑01 supersedes [Search][Search v1] API version 1.0. The newer version introduces task‑specific endpoints, clearer intent, and improved scalability. This article explains how to migrate existing Search v1 integrations.
1616

1717
> [!IMPORTANT]
1818
> Azure Maps [Search API version 1.0][Search v1] has been superseded by [Search API version 2026‑01‑01][Search v2026-01-01]. While Search v1 continues to function, new development should use the latest Search API to access task‑specific endpoints, improved performance, and long‑term support. To avoid future service disruptions, migrate existing Search v1 integrations to Search 2026‑01‑01.
@@ -22,13 +22,58 @@ ms.subservice: search
2222
| Purpose | Search v1 API | Search 2026‑01‑01 API |
2323
|--------------------|---------------------------------|-------------------------------|
2424
| Forward geocoding | [Get Search Address] | [Get Geocoding] |
25-
| Address/POI search | [Get Search Fuzzy] (final) | [Get Geocoding] |
25+
| Address | [Get Search Fuzzy] (final) | [Get Geocoding] |
2626
| Autocomplete | [Get Search Fuzzy] (type‑ahead) | [Get Geocode Autocomplete] |
2727
| Batch geocoding | [Get Search Address Batch] | [Get Geocoding Batch] |
2828
| Reverse geocoding | [Get Search Address Reverse] | [Get Reverse Geocoding] |
2929
| Batch reverse |[Get Search Address Reverse Batch]|[Get Reverse Geocoding Batch] |
3030
| Boundaries | [Get Search Polygon] | [Get Polygon] |
3131

32+
## Notable differences
33+
34+
The Search 2026‑01‑01 APIs introduce intent‑specific endpoints, clearer request semantics, and stricter result behavior compared to Search v1. The following table summarizes the most important differences to be aware of when migrating.
35+
36+
| Area | Search v1 | Search 2026‑01‑01 |
37+
|---|---|---|
38+
| API design | Multi‑purpose endpoints (for example, Search Fuzzy used for both autocomplete and final search) | Intent‑specific APIs (for example, Get Geocoding, Get Geocode Autocomplete, Get Reverse Geocoding) |
39+
| Autocomplete behavior | Implemented using Search Fuzzy with `typeahead=true` | Dedicated Get Geocode Autocomplete API |
40+
| Final geocoding | Often relied on fuzzy matching to return a "best guess" | Get Geocoding prioritizes correctness and may return no results |
41+
| Empty results | Often returned a low‑confidence match | May return HTTP 200 with an empty results array when no match is found |
42+
| Result confidence handling | Confidence and match quality were often implicit | Confidence, match codes, and entity type are explicit and should be evaluated |
43+
| Entity hierarchy handling | Fuzzy results could return loosely related entities | Results may roll up to a higher‑level entity (for example, county or region) and should be filtered by entity type |
44+
| Batch usage | Batch APIs available but often optional | Batch APIs are recommended for large‑scale and enrichment workflows |
45+
| Data enrichment workflows | Commonly retried with fuzzy search | Explicitly supports enrichment patterns with clearer no‑match signaling |
46+
| URL structure | Versioned under `/search/*` endpoints | Simplified, task‑specific endpoints (for example, `/geocode`, `/reverseGeocode`) |
47+
| Future extensibility | Limited ability to evolve individual behaviors | APIs evolve independently based on intent (autocomplete, geocoding, reverse) |
48+
49+
### Transactions usage differences
50+
51+
Search 2026‑01‑01 uses intent‑specific APIs, which can change how transactions are consumed compared to Search v1.
52+
53+
In Search v1, a single multi‑purpose endpoint was often used for both autocomplete and final geocoding. In Search 2026‑01‑01, these scenarios are separated into distinct APIs, which helps align transaction usage more closely with user intent.
54+
55+
Key considerations when migrating:
56+
57+
- Use [Get Geocode Autocomplete] only for type‑ahead user interactions.
58+
- Use [Get Geocoding] only when a final address or place is required.
59+
- Avoid calling final geocoding APIs repeatedly during interactive typing scenarios.
60+
- Prefer **batch APIs** for large‑scale or background geocoding workflows.
61+
62+
For details on how Azure Maps transactions are calculated and billed, see [Understanding Azure Maps transactions].
63+
64+
### Result handling changes
65+
66+
Search 2026‑01‑01 places greater emphasis on result correctness and explicit match signaling than Search v1.
67+
68+
When migrating, review how your application interprets search responses:
69+
70+
- A successful request may return **no results** when no suitable match is found. For more information, see [Understand empty geocoding results].
71+
- Low‑confidence or loosely related matches are less likely to be returned automatically.
72+
- Applications should evaluate **confidence values**, **match codes**, and **entity types** when determining whether a result is acceptable. For more information, see [Improve result quality for query-based geocoding].
73+
- If a requested entity isn't found, the service may return a higher‑level entity in the address hierarchy (for example, a region instead of a city). For more information on evaluating result quality and validating that returned entity types match the intended search scenario, see [Best practices for forward geocoding] in _Best practices for Azure Maps Search service_.
74+
75+
Don't assume that every successful request returns a usable result. Explicit result evaluation is required to maintain data quality.
76+
3277
## Request and response example comparison
3378

3479
The following examples show how common Azure Maps Search v1 requests map to their equivalents in Search API 2026‑01‑01. Each example focuses on the same user intent, highlighting the shift from multi‑purpose v1 endpoints to intent‑specific APIs.
@@ -209,3 +254,7 @@ GET https://atlas.microsoft.com/polygon
209254
[Get Reverse Geocoding]: /rest/api/maps/search/get-reverse-geocoding
210255
[Get Reverse Geocoding Batch]: /rest/api/maps/search/get-reverse-geocoding-batch
211256
[Get Polygon]: /rest/api/maps/search/get-polygon
257+
[Understanding Azure Maps transactions]: understanding-azure-maps-transactions.md
258+
[Understand empty geocoding results]: how-to-use-best-practices-for-search.md#understand-empty-geocoding-results
259+
[Improve result quality for query-based geocoding]: how-to-use-best-practices-for-search.md#improve-result-quality-for-query-based-geocoding
260+
[Best practices for forward geocoding]: how-to-use-best-practices-for-search.md#best-practices-for-forward-geocoding

0 commit comments

Comments
 (0)