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/index-similarity-and-scoring.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,8 +45,8 @@ Azure Cognitive Search provides the following scoring algorithms:
45
45
46
46
| Algorithm | Usage | Range |
47
47
|-----------|-------------|-------|
48
-
| BM25Similarity |Built-in algorithm on all search services created after July 2020. You can tune relevance ranking, but on newer services, changing the algorithm isn't supported. | Unbounded range|
49
-
|ClassicSimilarity |Used on older search services. You can [opt-in for BM25](index-ranking-similarity.md). | 0 < 1.00 |
48
+
| BM25Similarity |Fixed algorithm on all search services created after July 2020. You can configure this algorithm, but you can't switch to an older one (classic). | Unbounded.|
49
+
|ClassicSimilarity |Present on older search services. You can [opt-in for BM25](index-ranking-similarity.md) and choose an algorithm on a per-index basis. | 0 < 1.00 |
50
50
51
51
Both BM25 and Classic are TF-IDF-like retrieval functions that use the term frequency (TF) and the inverse document frequency (IDF) as variables to calculate relevance scores for each document-query pair, which is then used for ranking results. While conceptually similar to classic, BM25 is rooted in probabilistic information retrieval that produces more intuitive matches, as measured by user research.
Copy file name to clipboardExpand all lines: articles/search/search-indexer-how-to-access-private-sql.md
+17-24Lines changed: 17 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,41 +7,34 @@ author: mattmsft
7
7
ms.author: magottei
8
8
ms.service: cognitive-search
9
9
ms.topic: how-to
10
-
ms.date: 04/12/2023
10
+
ms.date: 04/18/2023
11
11
---
12
12
13
13
# Create a shared private link for a SQL Managed Instance from Azure Cognitive Search
14
14
15
-
This article explains how to configure an outbound indexer connection in Azure Cognitive Search to a SQL Managed Instance over a private endpoint.
15
+
This article explains how to configure an indexer in Azure Cognitive Search for a private connection to a SQL Managed Instance that runs within a virtual network.
16
16
17
17
On a private connection to a SQL Managed Instance, the fully qualified domain name (FQDN) of the instance must include the [DNS Zone](/azure/azure-sql/managed-instance/connectivity-architecture-overview#virtual-cluster-connectivity-architecture). Currently, only the Azure Cognitive Search Management REST API provides a `resourceRegion` parameter for accepting the DNS zone specification.
18
18
19
-
Although you can call the Management REST API directly, it's easier to use the Azure CLI `az rest` module to send Management REST API calls from a command line.
19
+
Although you can call the Management REST API directly, it's easier to use the Azure CLI `az rest` module to send Management REST API calls from a command line. This article uses the Azure CLI with REST to set up the private link.
20
20
21
21
> [!NOTE]
22
-
> This article relies on Azure portal for obtaining properties and confirming steps. However, when creating the shared private link for SQL Managed Instance, be sure to use the REST API. Although the Networking tab lists `Microsoft.Sql/managedInstances` as an option, the portal doesn't currently support the extended URL format used by SQL Managed Instance.
22
+
> This article refers to Azure portal for obtaining properties and confirming steps. However, when creating the shared private link for SQL Managed Instance, make sure you're using the REST API. Although the Networking tab lists `Microsoft.Sql/managedInstances` as an option, the portal doesn't currently support the extended URL format used by SQL Managed Instance.
23
23
24
24
## Prerequisites
25
25
26
26
+[Azure CLI](/cli/azure/install-azure-cli)
27
27
28
28
+ Azure Cognitive Search, Basic or higher. If you're using [AI enrichment](cognitive-search-concept-intro.md) and skillsets, use Standard 2 (S2) or higher. See [Service limits](search-limits-quotas-capacity.md#shared-private-link-resource-limits) for details.
29
29
30
-
+ Azure SQL Managed Instance, configured to run in a virtual network, with a private endpoint created through Azure Private Link.
30
+
+ Azure SQL Managed Instance, configured to run in a virtual network.
31
31
32
32
+ You should have a minimum of Contributor permissions on both Azure Cognitive Search and SQL Managed Instance.
33
33
34
-
## 1 - Private endpoint verification
35
-
36
-
Check whether the managed instance has a private endpoint.
37
-
38
-
1.[Sign in to Azure portal](https://portal.azure.com/).
39
-
40
-
1. Type "private link" in the top search bar, and then select **Private Link** to open the Private Link Center.
41
-
42
-
1. Select **Private endpoints** to view existing endpoints. You should see your SQL Managed Instance in this list.
34
+
> [!NOTE]
35
+
> Azure Private Link is used internally, at no charge, to set up the shared private link.
43
36
44
-
## 2 - Retrieve connection information
37
+
## 1 - Retrieve connection information
45
38
46
39
Retrieve the FQDN of the managed instance, including the DNS zone. The DNS zone is part of the domain name of the SQL Managed Instance. For example, if the FQDN of the SQL Managed Instance is `my-sql-managed-instance.a1b22c333d44.database.windows.net`, the DNS zone is `a1b22c333d44`.
47
40
@@ -53,7 +46,7 @@ Retrieve the FQDN of the managed instance, including the DNS zone. The DNS zone
53
46
54
47
For more information about connection properties, see [Create an Azure SQL Managed Instance](/azure/azure-sql/managed-instance/instance-create-quickstart?view=azuresql#retrieve-connection-details-to-sql-managed-instance&preserve-view=true).
55
48
56
-
## 3 - Create the body of the request
49
+
## 2 - Create the body of the request
57
50
58
51
1. Using a text editor, create the JSON for the shared private link.
59
52
@@ -79,7 +72,7 @@ For more information about connection properties, see [Create an Azure SQL Manag
79
72
80
73
1. In the Azure CLI, type `dir` to note the current location of the file.
81
74
82
-
## 4 - Create a shared private link
75
+
## 3 - Create a shared private link
83
76
84
77
1. From the command line, sign into Azure using `az login`.
85
78
@@ -89,7 +82,7 @@ For more information about connection properties, see [Create an Azure SQL Manag
89
82
90
83
1. Call the `az rest` command to use the [Management REST API](/rest/api/searchmanagement/2021-04-01-preview/shared-private-link-resources/create-or-update) of Azure Cognitive Search.
91
84
92
-
Because shared private link support for SQL managed instances is still in preview, you need a preview version of the REST API. You can use either `2021-04-01-preview`or `2020-08-01-preview`.
85
+
Because shared private link support for SQL managed instances is still in preview, you need a preview version of the REST API. Use `2021-04-01-preview`for this step`.
93
86
94
87
```azurecli
95
88
az rest --method put --uri https://management.azure.com/subscriptions/{{search-service-subscription-ID}}/resourceGroups/{{search service-resource-group}}/providers/Microsoft.Search/searchServices/{{search-service-name}}/sharedPrivateLinkResources/{{shared-private-link-name}}?api-version=2021-04-01-preview --body @create-pe.json
@@ -105,7 +98,7 @@ For more information about connection properties, see [Create an Azure SQL Manag
105
98
106
99
When you complete these steps, you should have a shared private link that's provisioned in a pending state. **It takes several minutes to create the link**. Once it's created, the resource owner needs to approve the request before it's operational.
107
100
108
-
## 5 - Approve the private endpoint connection
101
+
## 4 - Approve the private endpoint connection
109
102
110
103
On the SQL Managed Instance side, the resource owner must approve the private connection request you created.
111
104
@@ -117,13 +110,13 @@ On the SQL Managed Instance side, the resource owner must approve the private co
117
110
118
111
After the private endpoint is approved, Azure Cognitive Search creates the necessary DNS zone mappings in the DNS zone that's created for it.
119
112
120
-
## 6 - Check shared private link status
113
+
## 5 - Check shared private link status
121
114
122
115
On the Azure Cognitive Search side, you can confirm request approval by revisiting the Shared Private Access tab of the search service **Networking** page. Connection state should be approved.
123
116
124
117

125
118
126
-
## 7 - Configure the indexer to run in the private environment
119
+
## 6 - Configure the indexer to run in the private environment
127
120
128
121
You can now configure an indexer and its data source to use an outbound private connection to your managed instance.
129
122
@@ -158,7 +151,7 @@ This article assumes Postman or equivalent tool, and uses the REST APIs to make
158
151
```
159
152
160
153
> [!NOTE]
161
-
> If you're familiar with data source definitions in Cognitive Search, you'll notice that data source properties don't vary when using a shared private link. That's because the private connection is detected and handled internally.
154
+
> If you're familiar with data source definitions in Cognitive Search, you'll notice that data source properties don't vary when using a shared private link. That's because Search will always use a shared private link on the connection if one exists.
162
155
163
156
1. [Create the indexer definition](search-howto-create-indexers.md), setting the indexer execution environment to "private".
164
157
@@ -187,15 +180,15 @@ You can monitor the status of the indexer in Azure portal or by using the [Index
187
180
188
181
You can use [**Search explorer**](search-explorer.md) in Azure portal to check the contents of the index.
189
182
190
-
## 8 - Test the shared private link
183
+
## 7 - Test the shared private link
191
184
192
185
If you ran the indexer in the previous step and successfully indexed content from your managed instance, then the test was successful. However, if the indexer fails or there's no content in the index, you can modify your objects and repeat testing by choosing any client that can invoke an outbound request from an indexer.
193
186
194
187
An easy choice is [running an indexer](search-howto-run-reset-indexers.md) in Azure portal, but you can also try Postman and REST APIs for more precision. Assuming that your search service isn't also configured for a private connection, the REST client connection to Search can be over the public internet.
195
188
196
189
Here are some reminders for testing:
197
190
198
-
+ If you use Postman or another web testing tool, use the [Management REST API](/rest/api/searchmanagement/) and a [preview API version](/rest/api/searchmanagement/management-api-versions) to create the shared private link. Use the [Search REST API](/rest/api/searchservice/) and a [stable API version](/rest/api/searchservice/search-service-api-versions) to create and invoke indexers and data sources.
191
+
+ If you use Postman or another web testing tool, use the [Management REST API](/rest/api/searchmanagement/) and the [2021-04-01-Preview API version](/rest/api/searchmanagement/management-api-versions) to create the shared private link. Use the [Search REST API](/rest/api/searchservice/) and a [stable API version](/rest/api/searchservice/search-service-api-versions) to create and invoke indexers and data sources.
199
192
200
193
+ You can use the Import data wizard to create an indexer, data source, and index. However, the generated indexer won't have the correct execution environment setting.
Copy file name to clipboardExpand all lines: articles/search/search-indexer-howto-access-private.md
+13-25Lines changed: 13 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,14 +9,17 @@ ms.author: arjagann
9
9
ms.service: cognitive-search
10
10
ms.custom: ignite-2022
11
11
ms.topic: how-to
12
-
ms.date: 02/22/2023
12
+
ms.date: 04/18/2023
13
13
---
14
14
15
-
# Make outbound connections through a private endpoint
15
+
# Make outbound connections through a private link
16
16
17
-
If you have an Azure PaaS resource that has a private connection enabled through [Azure Private Link](../private-link/private-link-overview.md), you'll need to create a *shared private link* to reach those resources from Azure Cognitive Search. This article walks you through the steps for creating, testing, and managing a private link.
17
+
This article explains how to configure private, outbound calls from Azure Cognitive Search to Azure PaaS resources that run within a virtual network.
18
18
19
-
If you're setting up a private connection to a SQL Managed Instance, see [this article](search-indexer-how-to-access-private-sql.md) instead.
19
+
Setting up a private connection allows Azure Cognitive Search to connect to Azure PaaS through a virtual network IP address instead of a port that's open to the internet. The object created for the connection is called a *shared private link*. On the connection, Search uses the shared private link internally to reach an Azure PaaS resource inside the network boundary.
20
+
21
+
> [!NOTE]
22
+
> If you're setting up a private indexer connection to a SQL Managed Instance, see [this article](search-indexer-how-to-access-private-sql.md) instead.
20
23
21
24
## When to use a shared private link
22
25
@@ -27,7 +30,7 @@ Cognitive Search makes outbound calls to other Azure PaaS resources in the follo
27
30
+ Encryption key requests to Azure Key Vault
28
31
+ Custom skill requests to Azure Functions or similar resource
29
32
30
-
For those service-to-service communication scenarios, Search typically sends a request over a public internet connection. However, if your data, key vault, or function is accessed through a [private endpoint](../private-link/private-endpoint-overview.md), then your search service needs a way to reach that endpoint. The mechanism by which a search service connects to a private endpoint is called a *shared private link*.
33
+
In service-to-service communications, Search typically sends a request over a public internet connection. However, if your data, key vault, or function should be accessed through a [private endpoint](../private-link/private-endpoint-overview.md), you can create a *shared private link*.
31
34
32
35
A shared private link is:
33
36
@@ -54,10 +57,13 @@ When evaluating shared private links for your scenario, remember these constrain
54
57
55
58
+ An Azure Cognitive Search at the Basic tier or higher. If you're using [AI enrichment](cognitive-search-concept-intro.md) and skillsets, the tier must be Standard 2 (S2) or higher. See [Service limits](search-limits-quotas-capacity.md#shared-private-link-resource-limits) for details.
56
59
57
-
+ An Azure PaaS resource from the following list of supported resource types, configured to run in a virtual network, with a private endpoint created through Azure Private Link.
60
+
+ An Azure PaaS resource from the following list of supported resource types, configured to run in a virtual network.
58
61
59
62
+ You should have a minimum of Contributor permissions on both Azure Cognitive Search and the Azure PaaS resource for which you're creating the shared private link.
60
63
64
+
> [!NOTE]
65
+
> Azure Private Link is used internally, at no charge, to set up the shared private link.
66
+
61
67
<aname="group-ids"></a>
62
68
63
69
### Supported resource types
@@ -82,22 +88,6 @@ You can create a shared private link for the following resources.
82
88
83
89
<sup>4</sup> See [Create a shared private link for a SQL Managed Instance](search-indexer-how-to-access-private-sql.md) for instructions.
84
90
85
-
### Private endpoint verification
86
-
87
-
1. Sign in to [Azure portal](https://portal.azure.com/).
88
-
89
-
1. Type "private link" in the top search bar, and then select **Private Link** to open the Private Link Center.
90
-
91
-
1. Select **Private endpoints** to view existing endpoints. The Azure PaaS resource for which you're creating a shared private link must have a private endpoint in this list. See [Manage private endpoint connections](../private-link/manage-private-endpoint.md?tabs=manage-private-link-powershell#manage-private-endpoint-connections-on-azure-paas-resources) for details.
92
-
93
-
These Private Link tutorials provide steps for creating a private endpoint for Azure PaaS:
94
-
95
-
+[Tutorial: Connect to a storage account using an Azure Private Endpoint](../private-link/tutorial-private-endpoint-storage-portal.md)
96
-
97
-
+[Tutorial: Connect to an Azure Cosmos DB account using an Azure Private Endpoint](../private-link/tutorial-private-endpoint-cosmosdb-portal.md)
98
-
99
-
+[Tutorial: Connect to a web app using an Azure Private Endpoint](../private-link/tutorial-private-endpoint-webapp-portal.md)
100
-
101
91
## 1 - Create a shared private link
102
92
103
93
Use the Azure portal, Management REST API, the Azure CLI, or Azure PowerShell to create a shared private link.
@@ -106,9 +96,7 @@ Here are a few tips:
106
96
107
97
+ Give the private link a meaningful name. In the Azure PaaS resource, a shared private link appears alongside other private endpoints. A name like "shared-private-link-for-search" can remind you how it's used.
108
98
109
-
+ Don't skip the [private link verification](#private-endpoint-verification) step. It's possible to create a shared private link for an Azure PaaS resource that doesn't have a private endpoint. The link won't work if the resource isn't registered.
110
-
111
-
When you complete these steps, you have a shared private link that's provisioned in a pending state. **It takes several minutes to create the link**. Once it's created, the resource owner needs to approve the request before it's operational.
99
+
When you complete the steps in this section, you have a shared private link that's provisioned in a pending state. **It takes several minutes to create the link**. Once it's created, the resource owner needs to approve the request before it's operational.
0 commit comments