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
This article provides guidance for how you can manage and increase quotas for resources with Azure AI Foundry.
19
+
This article provides guidance for how you can manage and increase quotas for Azure AI services resources with Azure AI Foundry.
22
20
23
21
## Overview
24
22
25
23
Each Azure AI services resource has a preconfigured static call rate (transactions per second) which limits the number of concurrent calls that you can make to the backend service in a given time frame. The autoscale feature automatically increases or decreases your resource's rate limits based on near or real-time resource usage metrics and backend service capacity metrics.
26
24
27
25
## Get started with the autoscale feature
28
26
29
-
This feature is disabled by default for every new resource. Follow these instructions to enable it.
27
+
This feature is disabled by default for every new resource. To enable it, use the following information.
30
28
31
29
#### [Azure portal](#tab/portal)
32
30
@@ -61,7 +59,7 @@ By default, Azure AI services resources have a default rate limit of 10 TPS. If
61
59
62
60
### Does autoscale increase my Azure spend?
63
61
64
-
Azure AI services pricing hasn't changed and can be accessed [here](https://azure.microsoft.com/pricing/details/cognitive-services/). We'll only bill for successful calls made to Azure AI services APIs. However, increased call rate limits mean more transactions are completed, and you might receive a higher bill.
62
+
Azure AI services pricing hasn't changed and can be viewed from the [pricing page](https://azure.microsoft.com/pricing/details/cognitive-services/). We'll only bill for successful calls made to Azure AI services APIs. However, increased call rate limits mean more transactions are completed, and you might receive a higher bill.
65
63
66
64
Be aware of potential errors and their consequences. If a bug in your client application causes it to call the service hundreds of times per second, that would likely lead to a higher bill, whereas the cost would be much more limited under a fixed rate limit. Errors of this kind are your responsibility. We highly recommend that you perform development and client update tests against a resource with a fixed rate limit prior to using the autoscale feature.
Copy file name to clipboardExpand all lines: articles/ai-studio/index.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
### YamlMime:Landing
2
2
3
3
title: Azure AI Foundry documentation # < 60 chars
4
-
summary: Build cutting-edge, market-ready, responsible applications for your organization with AI.
4
+
summary: Safely design, customize, and manage AI applications and agents at scale.
5
5
metadata:
6
6
title: Azure AI Foundry documentation
7
7
description: Azure AI Foundry helps developers and organizations rapidly create intelligent, cutting-edge, market-ready, and responsible applications with out-of-the-box and pre-built and customizable APIs and models. Example applications include generative AI, natural language processing for conversations, search, monitoring, translation, speech, vision, and decision-making.
Copy file name to clipboardExpand all lines: articles/search/search-pagination-page-layout.md
+62-31Lines changed: 62 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Shpae search results
2
+
title: Shape search results
3
3
titleSuffix: Azure AI Search
4
4
description: Modify search result composition, get a document count, sort results, and add content navigation to search results in Azure AI Search.
5
5
@@ -10,26 +10,29 @@ ms.service: azure-ai-search
10
10
ms.custom:
11
11
- ignite-2023
12
12
ms.topic: how-to
13
-
ms.date: 12/06/2024
13
+
ms.date: 12/09/2024
14
14
---
15
15
16
-
# Shape search results and modify search results composition
16
+
# Shape search results or modify search results composition
17
17
18
-
This article explains search results composition in Azure AI Search and how to modify results for your scenarios. Search results are returned in a query response. The structure of a response is determined by parameters in the query itself.
18
+
This article explains search results composition in Azure AI Search and how to work with results in your apps. Search results are returned in a query response. The structure of a response is determined by parameters in the query itself.
19
19
20
-
Search results include top-level fields such as count and semantic ranking-related elements such as `answers`, but the matching documents are a values array.
20
+
Search results include top-level fields such as count and optional semantic ranking-related elements such as `answers`, but most of the response consists of matching documents in a values array.
21
21
22
22
For search results composition, parameters on the query determine:
23
23
24
24
+ Number of matches found in the index (`count`)
25
-
+ Number of matches returned in the response (50 by default, through `top`) or per page (`skip` and `top`)
25
+
+ Number of matches returned in the response (50 by default, configurable through `top`) or per page (`skip` and `top`)
26
+
+ A search score for each result, used for ranking (`@search.score`)
26
27
+ Fields included in search results (`select`)
27
-
+ Sort order (`orderby`)
28
+
+ Sort logic (`orderby`)
28
29
+ Highlighting of terms within a result, matching on either the whole or partial term in the body
29
-
+Whether elements from the semantic ranker are included in the response (semantic ranking is optional)
30
+
+Optional elements from the semantic ranker (`answers` at the top, `captions` for each match)
30
31
31
32
## Clients and APIs for defining the query response
32
33
34
+
You can use the following clients to configure a query response:
35
+
33
36
+[Search Explorer](search-explorer.md) in the Azure portal, using JSON view so that you can specify any supported parameter
34
37
+[Documents - POST (REST APIs)](/rest/api/searchservice/documents/search-post)
35
38
+[SearchClient.Search Method (Azure SDK for .NET)](/dotnet/api/azure.search.documents.searchclient.search?view=azure-dotnet&preserve-view=true)
@@ -39,7 +42,7 @@ For search results composition, parameters on the query determine:
39
42
40
43
## Result composition
41
44
42
-
Results are tabular, composed of fields of either all `retrievable` fields, or limited to just those fields specified in the `select` parameter. Rows are the matching documents.
45
+
Results are mostly tabular, composed of fields of either all `retrievable` fields, or limited to just those fields specified in the `select` parameter. Rows are the matching documents, typically ranked in order of relevance unless your query logic precludes relevance ranking.
43
46
44
47
You can choose which fields are in search results. While a search document might have a large number of fields, typically only a few are needed to represent each document in results. On a query request, append `select=<field list>` to specify which `retrievable` fields should appear in the response.
45
48
@@ -64,7 +67,7 @@ Occasionally, query output isn't what you're expecting to see. For example, you
64
67
65
68
## Counting matches
66
69
67
-
The count parameter returns the number of documents in the index that are considered a match for the query. To return the count, add `$count=true` to the query request. There's no maximum value imposed by the search service. Depending on your query and the content of your documents, the count could be as high as every document in the index.
70
+
The count parameter returns the number of documents in the index that are considered a match for the query. To return the count, add `count=true` to the query request. There's no maximum value imposed by the search service. Depending on your query and the content of your documents, the count could be as high as every document in the index.
68
71
69
72
Count is accurate when the index is stable. If the system is actively adding, updating, or deleting documents, the count is approximate, excluding any documents that aren't fully indexed.
70
73
@@ -79,19 +82,47 @@ Count won't be affected by routine maintenance or other workloads on the search
79
82
80
83
## Number of results in the response
81
84
82
-
The maximum API limit is 1,000 documents. By default, the search engine returns up to the first 50 matches.
85
+
Azure AI Search uses server-side paging to prevent queries from retrieving too many documents at once. Query parameters that determine the number of results in a response are `top` and `skip`. `top` refers to the number of search results in a page.
86
+
87
+
The default page size is 50, while the maximum page size is 1,000. If you specify a value greater than 1,000 and there are more than 1,000 results found in your index, only the first 1,000 results are returned.
88
+
89
+
If the number of matches exceed the page size, the response includes information to retrieve the next page of results. For example:
83
90
84
-
The top 50 are determined by search score, assuming the query is full text search or semantic. Otherwise, the top 50 are an arbitrary order for exact match queries (where uniform "@searchScore=1.0" indicates arbitrary ranking).
Set `top` to override the default of 50, returning as many as 1,000 documents in the query response. In newer preview APIs, if you're using a hybrid query, you can [specify maxTextRecallSize](hybrid-search-how-to-query.md#set-maxtextrecallsize-and-countandfacetmode-preview) to return up to 10,000 documents.
95
+
The top 50 are determined by search score, assuming the query is full text search or semantic. Otherwise, the top 50 are an arbitrary order for exact match queries (where uniform `@search.score=1.0` indicates arbitrary ranking).
87
96
88
-
To control the paging of all documents returned in a result set, add `top` and `$skip` parameters to a GET request, or `top` and `skip` to a POST request. The following list explains the logic.
97
+
Set `top` to override the default of 50. In newer preview APIs, if you're using a hybrid query, you can [specify maxTextRecallSize](hybrid-search-how-to-query.md#set-maxtextrecallsize-and-countandfacetmode-preview) to return up to 10,000 documents.
89
98
90
-
+ Return the first set of 15 matching documents plus a count of total matches: `GET /indexes/<INDEX-NAME>/docs?search=<QUERY STRING>&$top=15&$skip=0&$count=true`
99
+
To control the paging of all documents returned in a result set, use `top` and `skip` together. This query returns the first set of 15 matching documents plus a count of total matches.
91
100
92
-
+ Return the second set, skipping the first 15 to get the next 15: `$top=15&$skip=15`. Repeat for the third set of 15: `$top=15&$skip=30`
101
+
```http
102
+
POST https://contoso-search-eastus.search.windows.net/indexes/realestate-us-sample-index/docs/search?api-version=2024-07-01
103
+
104
+
{
105
+
"search": "condos with a view",
106
+
"count": true,
107
+
"top": 15,
108
+
"skip": 0
109
+
}
110
+
```
111
+
112
+
To return the second set, skip the first 15 to get the next 15:
113
+
114
+
```http
115
+
POST https://contoso-search-eastus.search.windows.net/indexes/realestate-us-sample-index/docs/search?api-version=2024-07-01
116
+
117
+
{
118
+
"search": "condos with a view",
119
+
"count": true,
120
+
"top": 15,
121
+
"skip": 15
122
+
}
123
+
```
93
124
94
-
The results of paginated queries aren't guaranteed to be stable if the underlying index is changing. Paging changes the value of `$skip` for each page, but each query is independent and operates on the current view of the data as it exists in the index at query time (in other words, there's no caching or snapshot of results, such as those found in a general purpose database).
125
+
The results of paginated queries aren't guaranteed to be stable if the underlying index is changing. Paging changes the value of `skip` for each page, but each query is independent and operates on the current view of the data as it exists in the index at query time (in other words, there's no caching or snapshot of results, such as those found in a general purpose database).
95
126
96
127
Following is an example of how you might get duplicates. Assume an index with four documents:
97
128
@@ -120,7 +151,7 @@ Notice that document 2 is fetched twice. This is because the new document 5 has
120
151
121
152
### Paging through a large number of results
122
153
123
-
Using `top` and `skip` allows a search query to page through 100,000 results, but what if results are larger than 100,000? To page through a response this large, use a [sort order](search-query-odata-orderby.md) and [range filter](search-query-odata-comparison-operators.md) as a workaround for `skip`.
154
+
An alternative technique for paging is to use a [sort order](search-query-odata-orderby.md) and [range filter](search-query-odata-comparison-operators.md) as a workaround for `skip`.
124
155
125
156
In this workaround, sort and filter are applied to a document ID field or another field that is unique for each document. The unique field must have `filterable` and `sortable` attribution in the search index.
126
157
@@ -172,23 +203,23 @@ You can also boost any matches found in specific fields by adding a scoring prof
172
203
173
204
### Order by search score
174
205
175
-
For full text search queries, results are automatically [ranked by a search score](index-similarity-and-scoring.md), calculated based on term frequency and proximity in a document (derived from [TF-IDF](https://en.wikipedia.org/wiki/Tf%E2%80%93idf)), with higher scores going to documents having more or stronger matches on a search term.
206
+
For full text search queries, results are automatically [ranked by a search score](index-similarity-and-scoring.md) using a BM25 algorithm, calculated based on term frequency, document length, and average document length.
176
207
177
-
The "@search.score" range is either unbounded, or 0 up to (but not including) 1.00 on older services.
208
+
The `@search.score` range is either unbounded, or 0 up to (but not including) 1.00 on older services.
178
209
179
-
For either algorithm, a "@search.score" equal to 1.00 indicates an unscored or unranked result set, where the 1.0 score is uniform across all results. Unscored results occur when the query form is fuzzy search, wildcard or regex queries, or an empty search (`search=*`). If you need to impose a ranking structure over unscored results, consider an **`$orderby`** expression to achieve that objective.
210
+
For either algorithm, a `@search.score` equal to 1.00 indicates an unscored or unranked result set, where the 1.0 score is uniform across all results. Unscored results occur when the query form is fuzzy search, wildcard or regex queries, or an empty search (`search=*`). If you need to impose a ranking structure over unscored results, consider an `orderby` expression to achieve that objective.
180
211
181
212
### Order by the semantic reranker
182
213
183
-
If you're using [semantic ranker](semantic-search-overview.md), the "@search.rerankerScore" determines the sort order of your results.
214
+
If you're using [semantic ranker](semantic-search-overview.md), the `@search.rerankerScore` determines the sort order of your results.
184
215
185
-
The "@search.rerankerScore" range is 1 to 4.00, where a higher score indicates a stronger semantic match.
216
+
The `@search.rerankerScore` range is 1 to 4.00, where a higher score indicates a stronger semantic match.
186
217
187
-
### Order with $orderby
218
+
### Order with orderby
188
219
189
-
If consistent ordering is an application requirement, you can define an [**`$orderby`** expression](query-odata-filter-orderby-syntax.md) on a field. Only fields that are indexed as "sortable" can be used to order results.
220
+
If consistent ordering is an application requirement, you can define an [`orderby` expression](query-odata-filter-orderby-syntax.md) on a field. Only fields that are indexed as "sortable" can be used to order results.
190
221
191
-
Fields commonly used in an **`$orderby`** include rating, date, and location. Filtering by location requires that the filter expression calls the [**`geo.distance()` function**](search-query-odata-geo-spatial-functions.md?#order-by-examples), in addition to the field name.
222
+
Fields commonly used in an `orderby` include rating, date, and location. Filtering by location requires that the filter expression calls the [`geo.distance()` function](search-query-odata-geo-spatial-functions.md?#order-by-examples), in addition to the field name.
192
223
193
224
Numeric fields (`Edm.Double`, `Edm.Int32`, `Edm.Int64`) are sorted in numeric order (for example, 1, 2, 10, 11, 20).
194
225
@@ -215,7 +246,7 @@ Hit highlighting instructions are provided on the [query request](/rest/api/sear
215
246
### Requirements for hit highlighting
216
247
217
248
+ Fields must be `Edm.String` or `Collection(Edm.String)`
218
-
+ Fields must be attributed at **searchable**
249
+
+ Fields must be attributed at `searchable`
219
250
220
251
### Specify highlighting in the request
221
252
@@ -237,7 +268,7 @@ By default, Azure AI Search returns up to five highlights per field. You can adj
237
268
238
269
### Highlighted results
239
270
240
-
When highlighting is added to the query, the response includes an "@search.highlights" for each result so that your application code can target that structure. The list of fields specified for "highlight" are included in the response.
271
+
When highlighting is added to the query, the response includes an `@search.highlights` for each result so that your application code can target that structure. The list of fields specified for "highlight" are included in the response.
241
272
242
273
In a keyword search, each term is scanned for independently. A query for "divine secrets" returns matches on any document containing either term.
243
274
@@ -308,7 +339,7 @@ POST /indexes/good-books/docs/search?api-version=2024-07-01
308
339
}
309
340
```
310
341
311
-
Because the criteria now have both terms, only one match is found in the search index. The response to the above query looks like this:
342
+
Because the criteria now have both terms, only one match is found in the search index. The response to the previous query looks like this:
312
343
313
344
```json
314
345
{
@@ -341,7 +372,7 @@ For the following examples, assume a query string that includes the quote-enclos
341
372
]
342
373
```
343
374
344
-
For search services created after July 2020, only phrases that match the full phrase query will be returned in "@search.highlights":
375
+
For search services created after July 2020, only phrases that match the full phrase query are returned in `@search.highlights`:
345
376
346
377
```json
347
378
"@search.highlights": {
@@ -354,7 +385,7 @@ For search services created after July 2020, only phrases that match the full ph
354
385
355
386
To quickly generate a search page for your client, consider these options:
356
387
357
-
+ [Create demo app](search-create-app-portal.md), in the Azure portal, creates an HTML page with a search bar, faceted navigation, and results area that includes images.
388
+
+ [Create demo app](search-create-app-portal.md), in the Azure portal, creates an HTML page with a search bar, faceted navigation, and a thumbnail area if you have images.
358
389
359
390
+ [Add search to an ASP.NET Core (MVC) app](tutorial-csharp-create-mvc-app.md) is a tutorial and code sample that builds a functional client.
0 commit comments