Updates from: 08/05/2024 01:27:12
Service Microsoft Docs article Related commit history on GitHub Change details
ai-services Use Your Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/ai-services/openai/concepts/use-your-data.md
You can deploy to a standalone Teams app directly from Azure OpenAI Studio. Foll
1. Provision your app: (detailed instructions in [Provision cloud resources](/microsoftteams/platform/toolkit/provision))
-1. Assign the **Cognitive Service OpenAI User** role to your deployed App Service resource
- 1. Go to the Azure portal and select the newly created Azure App Service resource
- 1. Go to **settings** -> **identity** -> **enable system assigned identity**
- 1. Select **Azure role assignments** and then **add role assignments**. Specify the following parameters:
- * Scope: resource group
- * Subscription: the subscription of your Azure OpenAI resource
- * Resource group of your Azure OpenAI resource
- * Role: **Cognitive Service OpenAI user**
+1. Assign the **Cognitive Service OpenAI User** role to your deployed **User Assigned Managed Identity** resource of your custom copilot.
+ 1. Go to the Azure portal and select the newly created **User Assigned Managed Identity** resource for your custom copilot.
+ 1. Go to **Azure Role Assignments**.
+ 1. Select **add role assignment**. Specify the following parameters:
+ * Scope: resource group
+ * Subscription: the subscription of your Azure OpenAI resource
+ * Resource group of your Azure OpenAI resource
+ * Role: **Cognitive Service OpenAI user**
1. Deploy your app to Azure by following the instructions in [Deploy to the cloud](/microsoftteams/platform/toolkit/deploy). 1. Publish your app to Teams by following the instructions in [Publish Teams app](/microsoftteams/platform/toolkit/publish).
+ > [!IMPORTANT]
+ > Your Teams app is intended for use within the same tenant of your Azure account used during setup, as it is securely configured by default for single-tenant usage. Using this app with a Teams account not associated with the Azure tenant used during setup will result in an error.
The README file in your Teams app has additional details and tips. Also, see [Tutorial - Build Custom Copilot using Teams](/microsoftteams/platform/teams-ai-library-tutorial) for guided steps.
ai-studio Configure Managed Network https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/ai-studio/how-to/configure-managed-network.md
If you plan to use __HuggingFace models__ with the hub, add outbound _FQDN_ rule
Private endpoints are currently supported for the following Azure * AI Studio hub
-* Azure Machine Learning
-* Azure Machine Learning registries
-* Azure Storage (all sub resource types)
-* Azure Container Registry
-* Azure Key Vault
-* Azure AI services
* Azure AI Search
-* Azure SQL Server
-* Azure Data Factory
+* Azure AI services
+* Azure API Management
+* Azure Container Registry
* Azure Cosmos DB (all sub resource types)
-* Azure Event Hubs
-* Azure Redis Cache
-* Azure Databricks
+* Azure Data Factory
* Azure Database for MariaDB
-* Azure Database for PostgreSQL Single Server
* Azure Database for MySQL
-* Azure SQL Managed Instance
-* Azure API Management
+* Azure Database for PostgreSQL Single Server
+* Azure Database for PostgreSQL Flexible Server
+* Azure Databricks
+* Azure Event Hubs
+* Azure Key Vault
+* Azure Machine Learning
+* Azure Machine Learning registries
+* Azure Redis Cache
+* Azure SQL Server
+* Azure Storage (all sub resource types)
+ > [!IMPORTANT] > While you can create a private endpoint for Azure AI services and Azure AI Search, the connected services must allow public networking. For more information, see [Connectivity to other services](#connectivity-to-other-services).
application-gateway Add Http Header Rewrite Rule Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/add-http-header-rewrite-rule-powershell.md
Title: Rewrite HTTP headers in Azure Application Gateway
description: This article provides information on how to rewrite HTTP headers in Azure Application Gateway by using Azure PowerShell -+ Last updated 04/12/2019
application-gateway Application Gateway Autoscaling Zone Redundant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-autoscaling-zone-redundant.md
Title: Scaling and Zone-redundant Application Gateway v2
description: This article introduces the Azure Application Standard_v2 and WAF_v2 SKU Autoscaling and Zone-redundant features. -+ Last updated 11/02/2023
application-gateway Application Gateway Backend Health Troubleshooting https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-backend-health-troubleshooting.md
Title: Troubleshoot backend health issues in Azure Application Gateway
description: Describes how to troubleshoot backend health issues for Azure Application Gateway -+ Last updated 03/08/2024
application-gateway Application Gateway Backend Health https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-backend-health.md
description: Learn how to use Backend health report in Azure Application Gateway -+ Last updated 05/30/2024
application-gateway Application Gateway Components https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-components.md
Title: Application gateway components
description: This article provides information about the various components in an application gateway -+ Last updated 08/21/2020
application-gateway Application Gateway Configure Listener Specific Ssl Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-configure-listener-specific-ssl-policy.md
Title: Configure listener-specific SSL policies on Azure Application Gateway thr
description: Learn how to configure listener-specific SSL policies on Application Gateway through portal -+ Last updated 02/18/2022
application-gateway Application Gateway Configure Ssl Policy Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-configure-ssl-policy-powershell.md
description: This article provides instructions to configure TLS Policy on Azure Application Gateway -+ Last updated 06/06/2023
application-gateway Application Gateway Create Probe Classic Ps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-create-probe-classic-ps.md
Title: Create a custom probe using the Classic deployment model - Azure Applicat
description: Learn how to create a custom probe for Application Gateway by using PowerShell in the classic deployment model -+ Last updated 11/13/2019
application-gateway Application Gateway Create Probe Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-create-probe-portal.md
description: Learn how to create a custom probe for Application Gateway by using the portal -+ Last updated 06/10/2022
application-gateway Application Gateway Create Probe Ps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-create-probe-ps.md
description: Learn how to create a custom probe for Application Gateway by using PowerShell in Resource Manager -+ Last updated 07/09/2020
application-gateway Application Gateway Diagnostics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-diagnostics.md
description: Learn how to enable and manage logs for Azure Application Gateway. -+ Last updated 06/17/2024
application-gateway Application Gateway End To End Ssl Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-end-to-end-ssl-powershell.md
Title: Configure end-to-end TLS with Azure Application Gateway
description: This article describes how to configure end-to-end TLS with Azure Application Gateway by using PowerShell -+ Last updated 06/09/2020
application-gateway Application Gateway Externally Managed Scheduled Autoscaling https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-externally-managed-scheduled-autoscaling.md
Title: Externally managed scheduled autoscaling for Application Gateway v2
description: This article introduces the Azure Application Standard_v2 and WAF_v2 SKU scheduled autoscaling feature. -+ Last updated 10/30/2023
application-gateway Application Gateway Ilb Arm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-ilb-arm.md
Title: Use with Internal Load Balancer - Azure Application Gateway
description: This article provides instructions to create, configure, start, and delete an Azure application gateway with internal load balancer (ILB) -+ Last updated 09/13/2022
application-gateway Application Gateway Key Vault Common Errors https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-key-vault-common-errors.md
Title: Common key vault errors in Application Gateway
description: This article identifies key vault-related problems, and helps you resolve them for smooth operations of Application Gateway. -+ Last updated 07/26/2022
application-gateway Application Gateway Metrics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-metrics.md
Title: Azure Monitor metrics for Application Gateway
description: Learn how to use metrics to monitor performance of application gateway -+ Last updated 05/17/2023
application-gateway Application Gateway Private Deployment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-private-deployment.md
description: Learn how to restrict access to Application Gateway -+ Last updated 07/18/2024
application-gateway Application Gateway Probe Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-probe-overview.md
Title: Health monitoring overview for Azure Application Gateway
description: Azure Application Gateway monitors the health of all resources in its backend pool and automatically removes any resource considered unhealthy from the pool. -+ Last updated 09/14/2023
application-gateway Application Gateway Ssl Policy Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-ssl-policy-overview.md
Title: TLS policy overview for Azure Application Gateway
description: Learn how to configure TLS policy for Azure Application Gateway and reduce encryption and decryption overhead from a backend server farm. -+ Last updated 06/06/2023
application-gateway Application Gateway Troubleshooting 502 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-troubleshooting-502.md
Title: Troubleshoot Bad Gateway errors - Azure Application Gateway
description: 'Learn how to troubleshoot Application Gateway Server Error: 502 - Web server received an invalid response while acting as a gateway or proxy server.' -+ Last updated 05/19/2023
application-gateway Application Gateway Websocket https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/application-gateway-websocket.md
Title: WebSocket support in Azure Application Gateway
description: Application Gateway provides native support for WebSocket across all gateway sizes. There are no user-configurable settings. -+ Last updated 11/16/2019
application-gateway Certificates For Backend Authentication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/certificates-for-backend-authentication.md
description: This article provides examples of how a TLS/SSL certificate can be converted to authentication certificate and trusted root certificate that are required to allow backend instances in Azure Application Gateway -+ Last updated 06/27/2024
application-gateway Classic To Resource Manager https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/classic-to-resource-manager.md
Title: Application Gateway classic to Resource Manager
description: Learn about moving Application Gateway resources from the classic deployment model to the Resource Manager deployment model. -+ Last updated 06/27/2024
application-gateway Configuration Frontend Ip https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configuration-frontend-ip.md
Title: Azure Application Gateway frontend IP address configuration
description: This article describes how to configure the Azure Application Gateway frontend IP address. -+ Last updated 06/27/2024
application-gateway Configuration Http Settings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configuration-http-settings.md
Title: Azure Application Gateway HTTP settings configuration
description: This article describes how to configure Azure Application Gateway HTTP settings. -+ Last updated 03/17/2023
application-gateway Configuration Infrastructure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configuration-infrastructure.md
Title: Azure Application Gateway infrastructure configuration
description: This article describes how to configure the Azure Application Gateway infrastructure. -+ Last updated 05/01/2024
application-gateway Configuration Listeners https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configuration-listeners.md
Title: Azure Application Gateway listener configuration
description: This article describes how to configure Azure Application Gateway listeners. -+ Last updated 07/19/2023
application-gateway Configuration Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configuration-overview.md
Title: Azure Application Gateway configuration overview
description: This article describes how to configure the components of Azure Application Gateway -+ Last updated 09/09/2020
application-gateway Configuration Request Routing Rules https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configuration-request-routing-rules.md
Title: Azure Application Gateway request routing rules configuration
description: This article describes how to configure the Azure Application Gateway request routing rules. -+ Last updated 04/25/2023
application-gateway Configure Alerts With Templates https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configure-alerts-with-templates.md
Title: Configure Azure Monitor alerts for Application Gateway
description: Learn how to use ARM templates to configure Azure Monitor alerts for Application Gateway -+ Last updated 03/03/2022
application-gateway Configure Application Gateway With Private Frontend Ip https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configure-application-gateway-with-private-frontend-ip.md
description: This article provides information on how to configure Application Gateway Standard v2 with a private frontend IP address -+ Last updated 02/07/2024
application-gateway Configure Key Vault Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configure-key-vault-portal.md
description: Learn how to use an Azure portal to integrate your key vault with your application gateway for TLS/SSL termination certificates. -+ Last updated 10/01/2021
application-gateway Configure Keyvault Ps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configure-keyvault-ps.md
description: Learn how to use an Azure PowerShell script to integrate your key vault with your application gateway for TLS/SSL termination certificates. -+ Last updated 05/26/2020
application-gateway Configure Web App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configure-web-app.md
description: This article provides guidance on how to configure Application Gateway with Azure App Service -+ Last updated 12/05/2022
application-gateway Create Multiple Sites Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/create-multiple-sites-portal.md
description: In this tutorial, you learn how to create an application gateway that hosts multiple web sites using the Azure portal. -+ Last updated 06/13/2023
application-gateway Create Ssl Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/create-ssl-portal.md
Title: 'Tutorial: Configure an Application Gateway with TLS termination using th
description: In this tutorial, you learn how to configure an application gateway and add a certificate for TLS termination using the Azure portal. -+ Last updated 06/30/2022
application-gateway Create Url Route Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/create-url-route-portal.md
Title: 'Tutorial: Create an application gateway with URL path-based routing rule
description: In this tutorial, you learn how to create URL path-based routing rules for an application gateway and virtual machine scale set using the Azure portal. -+ Last updated 07/08/2022
application-gateway Custom Error https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/custom-error.md
Title: Create Azure Application Gateway custom error pages
description: This article shows you how to create Application Gateway custom error pages. You can use your own branding and layout using a custom error page. -+ Last updated 12/19/2023
application-gateway Deploy Basic Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/deploy-basic-portal.md
Last updated 05/06/2024 -+
application-gateway Disabled Listeners https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/disabled-listeners.md
Title: Understanding disabled listeners
description: The article explains the details of a disabled listener and ways to resolve the problem. -+ Last updated 04/25/2023
application-gateway End To End Ssl Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/end-to-end-ssl-portal.md
description: Learn how to use the Azure portal to create an application gateway with end-to-end TLS encryption. -+ Last updated 03/28/2023
application-gateway Features https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/features.md
Title: Azure Application Gateway features
description: Learn about Azure Application Gateway features -+ Last updated 03/24/2023
application-gateway High Traffic Support https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/high-traffic-support.md
Title: Application Gateway high traffic volume support
description: This article provides guidance to configure Azure Application Gateway in support of high network traffic volume scenarios. -+ Last updated 05/19/2023
application-gateway How Application Gateway Works https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/how-application-gateway-works.md
Title: How an application gateway works
description: This article provides information about how an application gateway accepts incoming requests and routes them to the backend. -+ Last updated 05/01/2024
application-gateway How To Tcp Tls Proxy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/how-to-tcp-tls-proxy.md
description: This article provides information on how to configure Application Gateway's layer 4 proxy service for non-HTTP workloads. -+ Last updated 02/26/2024
application-gateway How To Troubleshoot Application Gateway Session Affinity Issues https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/how-to-troubleshoot-application-gateway-session-affinity-issues.md
description: This article provides information on how to troubleshoot session affinity issues in Azure Application Gateway -+ Last updated 01/24/2022
application-gateway Http Response Codes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/http-response-codes.md
Title: HTTP response codes - Azure Application Gateway
description: 'Learn how to troubleshoot Application Gateway HTTP response codes' -+ Last updated 07/05/2023
application-gateway Ingress Controller Add Health Probes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-add-health-probes.md
Title: Add health probes to your AKS pods
description: This article provides information on how to add health probes (readiness and/or liveness) to AKS pods with an Application Gateway. -+ Last updated 06/10/2022
application-gateway Ingress Controller Annotations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-annotations.md
Title: Application Gateway Ingress Controller annotations
description: This article provides documentation on the annotations specific to the Application Gateway Ingress Controller. -+ Last updated 5/13/2024
application-gateway Ingress Controller Autoscale Pods https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-autoscale-pods.md
Title: Autoscale AKS pods with Azure Application Gateway metrics
description: This article provides instructions on how to scale your AKS backend pods using Application Gateway metrics and Azure Kubernetes Metric Adapter -+ Last updated 10/26/2023
application-gateway Ingress Controller Cookie Affinity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-cookie-affinity.md
Title: Enable cookie based affinity with Application Gateway
description: This article provides information on how to enable cookie-based affinity with an Application Gateway. -+ Last updated 11/4/2019
application-gateway Ingress Controller Disable Addon https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-disable-addon.md
Title: Disable and re-enable Application Gateway Ingress Controller add-on for A
description: This article provides information on how to disable and re-enable the AGIC add-on for your AKS cluster -+ Last updated 06/10/2020
application-gateway Ingress Controller Expose Service Over Http Https https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-expose-service-over-http-https.md
Title: Expose an AKS service over HTTP or HTTPS using Application Gateway
description: This article provides information on how to expose an AKS service over HTTP or HTTPS using Application Gateway. -+ Last updated 07/23/2023
application-gateway Ingress Controller Expose Websocket Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-expose-websocket-server.md
Title: Expose a WebSocket server to Application Gateway
description: This article provides information on how to expose a WebSocket server to Application Gateway with ingress controller for AKS clusters. -+ Last updated 08/01/2023
application-gateway Ingress Controller Install Existing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-install-existing.md
Title: Create an ingress controller with an existing Application Gateway
description: This article provides information on how to deploy an Application Gateway Ingress Controller with an existing Application Gateway. -+ Last updated 02/07/2024
application-gateway Ingress Controller Install New https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-install-new.md
Title: Creating an ingress controller with a new Application Gateway
description: This article provides information on how to deploy an Application Gateway Ingress Controller with a new Application Gateway. -+ Last updated 07/28/2023
application-gateway Ingress Controller Letsencrypt Certificate Application Gateway https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-letsencrypt-certificate-application-gateway.md
Title: Use LetsEncrypt.org certificates with Application Gateway
description: This article provides information on how to obtain a certificate from LetsEncrypt.org and use it on your Application Gateway for AKS clusters. -+ Last updated 08/01/2023
application-gateway Ingress Controller Migration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-migration.md
Title: How to migrate from Azure Application Gateway Ingress Controller Helm to
description: This article provides instructions on how to migrate from AGIC deployed through Helm to AGIC deployed as an AKS add-on -+ Last updated 07/01/2024
application-gateway Ingress Controller Multiple Namespace Support https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-multiple-namespace-support.md
Title: Enable multiple namespace support for Application Gateway Ingress Control
description: This article provides information on how to enable multiple namespace support in a Kubernetes cluster with an Application Gateway Ingress Controller. -+ Last updated 08/01/2023
application-gateway Ingress Controller Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-overview.md
Title: What is Azure Application Gateway Ingress Controller?
description: This article provides an introduction to what Application Gateway Ingress Controller is. -+ Last updated 01/31/2024
application-gateway Ingress Controller Private Ip https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-private-ip.md
Title: Use private IP address for internal routing for an ingress endpoint
description: This article provides information on how to use private IPs for internal routing and thus exposing the Ingress endpoint within a cluster to the rest of the VNet. -+ Last updated 07/23/2023
application-gateway Ingress Controller Troubleshoot https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-troubleshoot.md
Title: Application Gateway Ingress Controller troubleshooting
description: This article provides documentation on how to troubleshoot common questions and issues with the Application Gateway Ingress Controller. -+ Last updated 01/31/2024
application-gateway Ingress Controller Update Ingress Controller https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ingress-controller-update-ingress-controller.md
Title: Upgrade ingress controller with Helm
description: This article provides information on how to upgrade an Application Gateway Ingress using Helm. -+ Last updated 07/23/2023
application-gateway Ipv6 Application Gateway Arm Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ipv6-application-gateway-arm-template.md
Last updated 11/06/2022 -+
application-gateway Ipv6 Application Gateway Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ipv6-application-gateway-portal.md
Last updated 04/04/2024 -+
application-gateway Ipv6 Application Gateway Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ipv6-application-gateway-powershell.md
Title: Configure Application Gateway with a frontend public IPv6 address using A
description: Learn how to configure Application Gateway with a frontend public IPv6 address using Azure PowerShell. -+ Last updated 02/08/2024
application-gateway Key Vault Certs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/key-vault-certs.md
Title: TLS termination with Azure Key Vault certificates
description: Learn how you can integrate Azure Application Gateway with Key Vault for server certificates that are attached to HTTPS-enabled listeners. -+ Last updated 02/02/2024
application-gateway Log Analytics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/log-analytics.md
description: This article shows you how you can use Azure Log Analytics to examine Application Gateway Web Application Firewall (WAF) logs. -+ Last updated 07/24/2023
application-gateway Migrate V1 V2 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/migrate-v1-v2.md
Title: Migrate from V1 to V2 - Azure Application Gateway
description: This article shows you how to migrate Azure Application Gateway and Web Application Firewall from V1 to V2. -+ Last updated 07/15/2024
application-gateway Monitor Application Gateway Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/monitor-application-gateway-reference.md
description: Important reference material needed when you monitor Application Ga
-+ Last updated 05/17/2024
application-gateway Monitor Application Gateway https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/monitor-application-gateway.md
Title: Monitoring Azure Application Gateway
description: Start here to learn how to monitor Azure Application Gateway -+ Last updated 02/26/2024
application-gateway Multiple Site Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/multiple-site-overview.md
Title: Hosting multiple sites on Azure Application Gateway
description: This article provides an overview of the Azure Application Gateway multi-site support. Examples are provided of rule priority and the order of evaluation for rules applied to incoming requests. Application Gateway rule priority evaluation order is described in detail. Conditions and limitations for using wildcard rules are provided. -+ Last updated 02/28/2024
application-gateway Mutual Authentication Certificate Management https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/mutual-authentication-certificate-management.md
description: Learn how to export a trusted client CA certificate chain for client authentication on Azure Application Gateway -+ Last updated 06/22/2023
application-gateway Mutual Authentication Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/mutual-authentication-overview.md
Title: Overview of mutual authentication on Azure Application Gateway
description: This article is an overview of mutual authentication on Application Gateway. -+ Last updated 03/12/2024
application-gateway Mutual Authentication Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/mutual-authentication-portal.md
Title: Configure mutual authentication on Azure Application Gateway through port
description: Learn how to configure an Application Gateway to have mutual authentication through portal -+ Last updated 02/18/2022
application-gateway Mutual Authentication Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/mutual-authentication-powershell.md
Title: Configure mutual authentication on Azure Application Gateway through Powe
description: Learn how to configure an Application Gateway to have mutual authentication through PowerShell -+ Last updated 02/18/2022
application-gateway Mutual Authentication Troubleshooting https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/mutual-authentication-troubleshooting.md
Title: Troubleshoot mutual authentication on Azure Application Gateway
description: Learn how to troubleshoot mutual authentication on Application Gateway -+ Last updated 02/18/2022
application-gateway Overview V2 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/overview-v2.md
Title: What is Azure Application Gateway v2?
description: Learn about Azure application Gateway v2 features. -+ Last updated 06/06/2024
application-gateway Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/overview.md
Title: What is Azure Application Gateway
description: Learn how you can use an Azure application gateway to manage web traffic to your application. -+ Last updated 09/27/2023
application-gateway Powershell Samples https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/powershell-samples.md
Title: Azure PowerShell examples for Azure Application Gateway
description: This article has links to Azure PowerShell examples so you can quickly deploy Azure Application Gateway configured in various ways. -+ Last updated 11/16/2019
application-gateway Private Link Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/private-link-configure.md
Title: Configure Azure Application Gateway Private Link
description: This article shows you how to configure Application Gateway Private Link. -+ Last updated 06/06/2022
application-gateway Private Link https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/private-link.md
Title: Azure Application Gateway Private Link
description: This article is an overview of Application Gateway Private Link. -+ Last updated 06/06/2023
application-gateway Proxy Buffers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/proxy-buffers.md
Title: Configure Request and Response Buffers
description: Learn how to configure Request and Response buffers for your Azure Application Gateway. -+ Last updated 08/03/2022
application-gateway Quick Create Bicep https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/quick-create-bicep.md
Last updated 05/30/2024 -+
application-gateway Quick Create Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/quick-create-cli.md
description: In this quickstart, you learn how to use the Azure CLI to create an Azure Application Gateway that directs web traffic to virtual machines in a backend pool. -+ Last updated 05/30/2024
application-gateway Quick Create Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/quick-create-portal.md
Last updated 05/30/2024 -+
application-gateway Quick Create Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/quick-create-powershell.md
Last updated 05/30/2024 -+
application-gateway Quick Create Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/quick-create-template.md
Last updated 05/30/2024 -+
application-gateway Quick Create Terraform https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/quick-create-terraform.md
Last updated 05/30/2024 -+ content_well_notification: - AI-contribution
application-gateway Redirect External Site Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-external-site-cli.md
Title: External traffic redirection using CLI - Azure Application Gateway
description: Learn how to create an application gateway that redirects external web traffic to the appropriate pool using the Azure CLI. -+ Last updated 09/24/2020
application-gateway Redirect External Site Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-external-site-powershell.md
description: Learn how to create an application gateway that redirects web traffic to an external site using Azure PowerShell. -+ Last updated 09/24/2020
application-gateway Redirect Http To Https Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-http-to-https-cli.md
description: Learn how to create an HTTP to HTTPS redirection and add a certificate for TLS termination using the Azure CLI. -+ Last updated 04/27/2023
application-gateway Redirect Http To Https Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-http-to-https-portal.md
Title: HTTP to HTTPS redirection in portal - Azure Application Gateway
description: Learn how to create an application gateway with redirected traffic from HTTP to HTTPS using the Azure portal. -+ Last updated 05/19/2023
application-gateway Redirect Http To Https Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-http-to-https-powershell.md
Title: HTTP to HTTPS redirection using PowerShell - Azure Application Gateway
description: Learn how to create an application gateway with redirected traffic from HTTP to HTTPS using Azure PowerShell. -+ Last updated 09/28/2020
application-gateway Redirect Internal Site Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-internal-site-cli.md
description: Learn how to create an application gateway that redirects internal web traffic to the appropriate pool using the Azure CLI. -+ Last updated 04/27/2023
application-gateway Redirect Internal Site Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-internal-site-powershell.md
description: Learn how to create an application gateway that redirects internal web traffic to the appropriate backend pool of servers using Azure PowerShell. -+ Last updated 09/28/2020
application-gateway Redirect Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/redirect-overview.md
Title: Redirect overview for Azure Application Gateway
description: Learn about the redirect capability in Azure Application Gateway to redirect traffic received on one listener to another listener or to an external site. -+ Last updated 04/19/2022
application-gateway Renew Certificates https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/renew-certificates.md
description: Learn how to renew a certificate associated with an application gat
-+ Last updated 01/25/2022
application-gateway Resource Health Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/resource-health-overview.md
Title: Azure Application Gateway Resource Health overview
description: This article is an overview of the resource health feature for Azure Application Gateway -+ Last updated 7/9/2019
application-gateway Retirement Faq https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/retirement-faq.md
description: This article lists out commonly added questions on retirement of Application gateway V1 SKUs and Migration -+ Last updated 04/18/2024
application-gateway Rewrite Http Headers Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/rewrite-http-headers-portal.md
Title: Rewrite HTTP request and response headers in portal - Azure Application G
description: Learn how to use the Azure portal to configure an Azure Application Gateway to rewrite the HTTP headers in the requests and responses passing through the gateway -+ Last updated 11/13/2019
application-gateway Rewrite Http Headers Url https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/rewrite-http-headers-url.md
Title: Rewrite HTTP headers and URL with Azure Application Gateway description: This article provides an overview of rewriting HTTP headers and URL in Azure Application Gateway -+ Last updated 09/13/2022
application-gateway Rewrite Url Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/rewrite-url-portal.md
Title: Rewrite URL and query string with Azure Application Gateway - Azure porta
description: Learn how to use the Azure portal to configure an Azure Application Gateway to rewrite URL and query string -+ Last updated 4/05/2021
application-gateway Self Signed Certificates https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/self-signed-certificates.md
description: Learn how to generate an Azure Application Gateway self-signed certificate with a custom root CA -+ Last updated 01/17/2024
application-gateway Ssl Certificate Management https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ssl-certificate-management.md
Title: Listener TLS certificate management in Application Gateway
description: Understand listener certificate management through portal. -+ Last updated 03/19/2024
application-gateway Ssl Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/ssl-overview.md
Title: Enabling end to end TLS on Azure Application Gateway
description: This article is an overview of the Application Gateway end to end TLS support. -+ Last updated 06/09/2023
application-gateway Tcp Tls Proxy Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tcp-tls-proxy-overview.md
Title: Application Gateway TCP/TLS proxy overview (Preview)
description: This article provides an overview of Azure Application Gateway's TCP/TLS (layer 4) proxy service. -+ Last updated 03/12/2024
application-gateway Troubleshoot App Service Redirection App Service Url https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/troubleshoot-app-service-redirection-app-service-url.md
description: This article provides information on how to troubleshoot the redirection issue when Azure Application Gateway is used with Azure App Service -+ Last updated 04/15/2021
application-gateway Tutorial Autoscale Ps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-autoscale-ps.md
Title: 'Tutorial: Improve web application access - Azure Application Gateway'
description: In this tutorial, learn how to create an autoscaling, zone-redundant application gateway with a reserved IP address using Azure PowerShell. -+ Last updated 03/08/2021
application-gateway Tutorial Http Header Rewrite Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-http-header-rewrite-powershell.md
Title: Create an Azure Application Gateway & rewrite HTTP headers
description: This article provides information on how to create an Azure Application Gateway and rewrite HTTP headers using Azure PowerShell -+ Last updated 11/19/2019
application-gateway Tutorial Ingress Controller Add On Existing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-ingress-controller-add-on-existing.md
Title: 'Tutorial: Enable ingress controller add-on for existing AKS cluster with
description: Use this tutorial to enable the Ingress Controller Add-On for your existing AKS cluster with an existing Application Gateway -+ Last updated 07/01/2024
application-gateway Tutorial Ingress Controller Add On New https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-ingress-controller-add-on-new.md
Title: 'Tutorial: Enable the Ingress Controller add-on for a new AKS cluster wit
description: Use this tutorial to learn how to enable the Ingress Controller add-on for your new AKS cluster with a new application gateway instance. -+ Last updated 02/07/2024
application-gateway Tutorial Manage Web Traffic Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-manage-web-traffic-cli.md
Title: Manage web traffic - Azure CLI
description: Learn how to create an application gateway with a Virtual Machine Scale Set to manage web traffic using the Azure CLI. -+ Last updated 04/27/2023
application-gateway Tutorial Manage Web Traffic Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-manage-web-traffic-powershell.md
Title: Manage web traffic - Azure PowerShell
description: Learn how to create an application gateway with a virtual machine scale set to manage web traffic using Azure PowerShell. -+ Last updated 07/19/2019
application-gateway Tutorial Multiple Sites Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-multiple-sites-cli.md
description: Learn how to create an application gateway that hosts multiple web sites using the Azure CLI. -+ Last updated 04/27/2023
application-gateway Tutorial Multiple Sites Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-multiple-sites-powershell.md
description: Learn how to create an application gateway that hosts multiple web sites using Azure PowerShell. -+ Last updated 07/20/2020
application-gateway Tutorial Ssl Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-ssl-cli.md
Title: TLS termination using CLI - Azure Application Gateway
description: Learn how to create an application gateway and add a certificate for TLS termination using the Azure CLI. -+ Last updated 04/27/2023
application-gateway Tutorial Ssl Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-ssl-powershell.md
description: Learn how to create an application gateway and add a certificate for TLS termination using Azure PowerShell. -+ Last updated 11/14/2019
application-gateway Tutorial Url Redirect Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-url-redirect-cli.md
description: In this tutorial, you learn how to create an application gateway with URL path-based redirected traffic using the Azure CLI. -+ Last updated 04/27/2023
application-gateway Tutorial Url Redirect Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-url-redirect-powershell.md
Title: URL path-based redirection using PowerShell - Azure Application Gateway
description: Learn how to create an application gateway with URL path-based redirected traffic using Azure PowerShell. -+ Last updated 03/24/2021
application-gateway Tutorial Url Route Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-url-route-cli.md
Title: Route web traffic based on the URL - Azure CLI
description: In this article, learn how to route web traffic based on the URL to specific scalable pools of servers using the Azure CLI. -+ Last updated 04/27/2023
application-gateway Tutorial Url Route Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/tutorial-url-route-powershell.md
Title: Route web traffic based on the URL - Azure PowerShell
description: Learn how to route web traffic based on the URL to specific scalable pools of servers using Azure PowerShell. -+ Last updated 07/31/2019
application-gateway Understanding Pricing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/understanding-pricing.md
Title: Understanding pricing - Azure Application Gateway
description: This article describes the billing process for Azure Application Gateway and Web Application Firewall for both v1 to v2 SKUs -+ Last updated 01/19/2024
application-gateway Url Route Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/url-route-overview.md
Title: Azure Application Gateway URL-based content routing overview
description: This article provides an overview of the Azure Application Gateway URL-based content routing, UrlPathMap configuration and PathBasedRouting rule. -+ Last updated 03/28/2023
application-gateway V1 Retirement https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/v1-retirement.md
description: This article provides a high-level overview of the retirement of Application gateway V1 SKUs. -+ Last updated 04/19/2023
azure-functions Functions Reference Python https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-reference-python.md
Title: Python developer reference for Azure Functions description: Understand how to develop, validate, and deploy your Python code projects to Azure Functions using the Python library for Azure Functions. Previously updated : 05/16/2024 Last updated : 07/30/2024 ms.devlang: python zone_pivot_groups: python-mode-functions
This guide is an introduction to developing Azure Functions by using Python. The
> This article supports both the v1 and v2 programming model for Python in Azure Functions. > The Python v1 model uses a *functions.json* file to define functions, and the new v2 model lets you instead use a decorator-based approach. This new approach results in a simpler file structure, and it's more code-centric. Choose the **v2** selector at the top of the article to learn about this new programming model.
-As a Python developer, you might also be interested in one of the following articles:
+As a Python developer, you might also be interested in these topics:
+
+## [Get started](#tab/get-started)
::: zone pivot="python-mode-configuration"++ [Visual Studio Code](./create-first-function-vs-code-python.md?pivots=python-mode-configuration): Create your first Python app using Visual Studio Code.++ [Terminal or command prompt](./create-first-function-cli-python.md?pivots=python-mode-configuration): Create your first Python app from the command prompt using Azure Functions Core Tools.++ [Samples](/samples/browse/?products=azure-functions&languages=python): Review some existing Python apps in the Learn samples browser. ++ [Visual Studio Code](./create-first-function-vs-code-python.md?pivots=python-mode-decorators): Create your first Python app using Visual Studio Code.++ [Terminal or command prompt](./create-first-function-cli-python.md?pivots=python-mode-decorators): Create your first Python app from the command prompt using Azure Functions Core Tools.++ [Samples](/samples/browse/?products=azure-functions&languages=python): Review some existing Python apps in the Learn samples browser.
+## [Scenarios](#tab/scenarios)
-| Getting started | Concepts| Scenarios and samples |
-|--|--|--|
-| <ul><li>[Create Python functions by using Visual Studio Code](./create-first-function-vs-code-python.md?pivots=python-mode-configuration)</li><li>[Create Python functions by using a terminal or command prompt](./create-first-function-cli-python.md?pivots=python-mode-configuration)</li></ul> | <ul><li>[Developer guide](functions-reference.md)</li><li>[Hosting options](functions-scale.md)</li><li>[Performance&nbsp;considerations](functions-best-practices.md)</li></ul> | <ul><li>[Image classification with PyTorch](machine-learning-pytorch.md)</li><li>[Azure Automation sample](/samples/azure-samples/azure-functions-python-list-resource-groups/azure-functions-python-sample-list-resource-groups/)</li><li>[Machine learning with TensorFlow](functions-machine-learning-tensorflow.md)</li><li>[Browse Python samples](/samples/browse/?products=azure-functions&languages=python)</li></ul> |
++ [Machine learning & AI](functions-scenarios.md?pivots=programming-language-python#machine-learning-and-ai): Features machine learning with [PyTorch](machine-learning-pytorch.md) and [TensorFlow](functions-machine-learning-tensorflow.md). Connect to Azure OpenAI models using [Functions bindings](./functions-bindings-openai.md).++ [Automation](/samples/azure-samples/azure-functions-python-list-resource-groups/azure-functions-python-sample-list-resource-groups/): Use Python functions to automate the management of Azure resources.++ [Serverless workflows](./durable/quickstart-python-vscode.md?&pivots=python-mode-configuration): Create stateful functions in a serverless environment as part of orchestrated workflows.++ [More...](functions-scenarios.md?pivots=programming-language-python) ++ [Machine learning & AI](functions-scenarios.md?pivots=programming-language-python#machine-learning-and-ai): Use [Functions bindings](./functions-bindings-openai.md) to connect to and manipulate Azure OpenAI data models, including [text completion](functions-add-openai-text-completion.md?pivots=programming-language-python).++ [Serverless workflows](./durable/quickstart-python-vscode.md?&pivots=python-mode-decorators): Create stateful functions in a serverless environment as part of orchestrated workflows.++ [More...](functions-scenarios.md?pivots=programming-language-python) ::: zone-end
+## [Hosting options](#tab/hosting)
-| Getting started | Concepts| Samples |
-| | | |
-| <ul><li>[Create Python functions by using Visual Studio Code](./create-first-function-vs-code-python.md?pivots=python-mode-decorators)</li><li>[Create Python functions by using a terminal or command prompt](./create-first-function-cli-python.md?pivots=python-mode-decorators)</li></ul> | <ul><li>[Developer guide](functions-reference.md)</li><li>[Hosting options](functions-scale.md)</li><li>[Performance&nbsp;considerations](functions-best-practices.md)</li></ul> | <li>[Code Examples](functions-bindings-triggers-python.md)</li> |
++ [Flex Consumption plan](./flex-consumption-plan.md): Linux-based serverless hosting option that features full support for managed identities, virtual networks, and flexible deployments. This plan is currently in preview.++ [Container hosting options](container-concepts.md): Run and deploy your Python functions on Linux in a Docker container, including integrated [Azure Container Apps hosting](functions-container-apps-hosting.md).++ [Compare hosting options...](functions-scale.md) + ## Development options
azure-large-instances Create A Volume Group https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-large-instances/workloads/epic/create-a-volume-group.md
ms. Title: Create a volume group
-+ Last updated 06/01/2023
azure-monitor Data Sources Firewall Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/agents/data-sources-firewall-logs.md
The [data collection rule](../essentials/data-collection-rule-overview.md) defin
- How Azure Monitor transforms events during ingestion. - The destination Log Analytics workspace and table to which Azure Monitor sends the data.
-You can define a data collection rule to send data from multiple machines to multiple Log Analytics workspaces, including workspaces in a different region or tenant. Create the data collection rule in the *same region* as your Analytics workspace.
+You can define a data collection rule to send data from multiple machines to a Log Analytics workspaces, including workspace in a different region or tenant. Create the data collection rule in the *same region* as your Analytics workspace.
> [!NOTE] > To send data across tenants, you must first enable [Azure Lighthouse](../../lighthouse/overview.md).
To create the data collection rule in the Azure portal:
[ ![Screenshot that shows the Azure portal form to select firewall logs in a data collection rule.](media/data-collection-firewall-log/firewall-data-collection-rule.png)](media/data-collection-firewall-log/firewall-data-collection-rule.png#lightbox)
-1. On the **Destination** tab, add one or more destinations for the data source. You can select multiple destinations of the same or different types. For instance, you can select multiple Log Analytics workspaces, which is also known as multihoming.
+1. On the **Destination** tab, add a destination for the data source.
[ ![Screenshot that shows the Azure portal form to add a data source in a data collection rule.](media/data-collection-firewall-log/data-collection-rule-destination.png) ](media/data-collection-firewall-log/data-collection-rule-destination.png#lightbox)
azure-monitor Azure Ad Authentication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/azure-ad-authentication.md
The following Software Development Kits (SDKs) and features are unsupported for
Application Insights .NET SDK supports the credential classes provided by [Azure Identity](https://github.com/Azure/azure-sdk-for-net/tree/master/sdk/identity/Azure.Identity#credential-classes). - We recommend `DefaultAzureCredential` for local development.-- Ensure you're authenticated on Visual Studio with the expected Azure user account. For more information, see [Authenticate via Visual Studio](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/identity/Azure.Identity#authenticate-via-visual-studio).
+- Authenticate on Visual Studio with the expected Azure user account. For more information, see [Authenticate via Visual Studio](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/identity/Azure.Identity#authenticate-via-visual-studio).
- We recommend `ManagedIdentityCredential` for system-assigned and user-assigned managed identities. - For system-assigned, use the default constructor without parameters. - For user-assigned, provide the client ID to the constructor.
useAzureMonitor(options);
> [!NOTE] > Support for Microsoft Entra ID in the Application Insights Node.JS is included starting with [version 2.1.0-beta.1](https://www.npmjs.com/package/applicationinsights/v/2.1.0-beta.1).
-If using applicationinsights npm package.
+If using `applicationinsights` npm package.
```typescript const appInsights = require("applicationinsights"); const { DefaultAzureCredential } = require("@azure/identity");
appInsights.defaultClient.config.aadTokenCredential = credential;
#### Environment variable configuration
-When using [Azure App Services autoinstrumentation](./azure-web-apps-nodejs.md) The `APPLICATIONINSIGHTS_AUTHENTICATION_STRING` environment variable lets Application Insights authenticate to Microsoft Entra ID and send telemetry.
+Use the `APPLICATIONINSIGHTS_AUTHENTICATION_STRING` environment variable to let Application Insights authenticate to Microsoft Entra ID and send telemetry when using [Azure App Services autoinstrumentation](./azure-web-apps-nodejs.md).
- For system-assigned identity:
After setting it, restart your application. It now sends telemetry to Applicatio
### [Python](#tab/python)
-> [!NOTE]
-> Microsoft Entra authentication is only available for Python v2.7, v3.6, and v3.7. Support for Microsoft Entra ID in the Application Insights OpenCensus Python SDK
-is included starting with beta version [opencensus-ext-azure 1.1b0](https://pypi.org/project/opencensus-ext-azure/1.1b0/).
-
-> [!NOTE]
-> [OpenCensus Python SDK is deprecated](https://opentelemetry.io/blog/2023/sunsetting-opencensus/), but Microsoft supports it until retirement on September 30, 2024. We now recommend the [OpenTelemetry-based Python offering](./opentelemetry-enable.md?tabs=python) and provide [migration guidance](./opentelemetry-python-opencensus-migrate.md?tabs=aspnetcore).
-
-Construct the appropriate [credentials](/python/api/overview/azure/identity-readme#credentials) and pass them into the constructor of the Azure Monitor exporter. Make sure your connection string is set up with the instrumentation key and ingestion endpoint of your resource.
-
-The `OpenCensus` Azure Monitor exporters support these authentication types. We recommend using managed identities in production environments.
-
-#### System-assigned managed identity
-
-```python
-from azure.identity import ManagedIdentityCredential
-
-from opencensus.ext.azure.trace_exporter import AzureExporter
-from opencensus.trace.samplers import ProbabilitySampler
-from opencensus.trace.tracer import Tracer
+To configure a secure connection to Azure using OpenTelemetry, see [Enable Microsoft Entra ID (formerly Azure AD) authentication](./opentelemetry-configuration.md?tabs=python#enable-microsoft-entra-id-formerly-azure-ad-authentication).
-credential = ManagedIdentityCredential()
-tracer = Tracer(
- exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
- sampler=ProbabilitySampler(1.0)
-)
-...
-
-```
-
-#### User-assigned managed identity
-
-```python
-from azure.identity import ManagedIdentityCredential
-
-from opencensus.ext.azure.trace_exporter import AzureExporter
-from opencensus.trace.samplers import ProbabilitySampler
-from opencensus.trace.tracer import Tracer
-
-credential = ManagedIdentityCredential(client_id="<client-id>")
-tracer = Tracer(
- exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
- sampler=ProbabilitySampler(1.0)
-)
-...
-
-```
+To configure using OpenCensus (deprecated), see [Configure and enable Microsoft Entra ID-based authentication](/previous-versions/azure/azure-monitor/app/opencensus-python#configure-and-enable-microsoft-entra-id-based-authentication).
The main OAuth2 flow supported is through [authorization codes](/azure/active-di
&resource=https://api.applicationinsights.io ```
-When a request is made to the authorized URL, the client\_id is the application ID from your Microsoft Entra app, copied from the app's properties menu. The redirect\_uri is the homepage/login URL from the same Microsoft Entra app. When a request is successful, this endpoint redirects you to the sign-in page you provided at sign-up with the authorization code appended to the URL. See the following example:
+When a request is made to the authorized URL, the `client\_id` is the application ID from your Microsoft Entra app, copied from the app's properties menu. The `redirect\_uri` is the `homepage/login` URL from the same Microsoft Entra app. When a request is successful, this endpoint redirects you to the sign-in page you provided at sign-up with the authorization code appended to the URL. See the following example:
```http http://<app-client-id>/?code=AUTHORIZATION_CODE&session_state=STATE_GUID
If the SDK fails to get a token, the exception message is logged as
### [Node.js](#tab/nodejs)
-Internal logs could be turned on by using the following setup. After they're enabled, error logs will be shown in the console, including any error related to Microsoft Entra integration. Examples include failure to generate the token when the wrong credentials are supplied or errors when the ingestion endpoint fails to authenticate by using the provided credentials.
+Turn on internal logs by using the following setup. After you enable them, the console shows error logs, including any error related to Microsoft Entra integration. Examples include failing to generate the token with the wrong credentials or errors when the ingestion endpoint fails to authenticate using the provided credentials.
```javascript let appInsights = require("applicationinsights");
azure-monitor Create Custom Table Auxiliary https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/logs/create-custom-table-auxiliary.md
Provide this payload - update the table name and adjust the columns based on you
There are currently two ways to ingest data to a custom table with the Auxiliary plan: --- [Collect logs from a text or JSON file with Azure Monitor Agent](../agents/data-sources-custom-logs.md).
+- [Collect logs from a text file with Azure Monitor Agent](../agents/data-collection-log-text.md) / [Collect logs from a JSON file with Azure Monitor Agent](../agents/data-collection-log-json.md).
If you use this method, your custom table must only have two columns - `TimeGenerated` and `RawData` (of type `string`). The data collection rule sends the entirety of each log entry you collect to the `RawData` column, and Azure Monitor Logs automatically populates the `TimeGenerated` column with the time the log is ingested.
azure-monitor Vminsights Dependency Agent Maintenance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/vm/vminsights-dependency-agent-maintenance.md
The Dependency Agent collects data about processes running on the virtual machin
## Dependency Agent requirements -- The Dependency Agent requires the Azure Monitor Agent to be installed on the same machine.-- On both the Windows and Linux versions, the Dependency Agent collects data using a user-space service and a kernel driver.
- - Dependency Agent supports the same [Windows versions that Azure Monitor Agent supports](../agents/agents-overview.md#supported-operating-systems), except Windows Server 2008 SP2, Windows Server 2022, and Azure Stack HCI.
- - For Linux, see [Dependency Agent Linux support](#dependency-agent-linux-support).
+* The Dependency Agent requires the Azure Monitor Agent to be installed on the same machine.
+* On both the Windows and Linux versions, the Dependency Agent collects data using a user-space service and a kernel driver.
+ * Dependency Agent supports the same [Windows versions that Azure Monitor Agent supports](../agents/agents-overview.md#supported-operating-systems), except Windows Server 2008 SP2 and Azure Stack HCI.
+ * For Linux, see [Dependency Agent Linux support](#dependency-agent-linux-support).
## Install or upgrade Dependency Agent
azure-netapp-files Backup Requirements Considerations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-netapp-files/backup-requirements-considerations.md
Azure NetApp Files backup in a region can only protect an Azure NetApp Files vol
* If you need to delete a parent resource group or subscription that contains backups, you should delete any backups first. Deleting the resource group or subscription won't delete the backups.
-* If you use the standard storage with cool access, see [Manage Azure NetApp Files standard storage with cool access](manage-cool-access.md#considerations) for more considerations.
- ## Next steps * [Understand Azure NetApp Files backup](backup-introduction.md)
azure-netapp-files Cool Access Introduction https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-netapp-files/cool-access-introduction.md
The following diagram illustrates an application with a volume enabled for cool
In the initial write, data blocks are assigned a "warm" temperature value (in the diagram, red data blocks) and exist on the "hot" tier. As the data resides on the volume, a temperature scan monitors the activity of each block. When a data block is inactive, the temperature scan decreases the value of the block until it has been inactive for the number of days specified in the cooling period. The cooling period can be between 2 and 183 days; it has a default value of 31 days. Once marked "cold," the tiering scan collects blocks and packages them into 4-MB objects, which are moved to Azure storage fully transparently. To the application and users, those cool blocks still appear online. Tiered data appears to be online and continues to be available to users and applications by transparent and automated retrieval from the cool tier.
-By `Default` (unless cool access retrieval policy is configured otherwise), data blocks on the cool tier that are read randomly again become "warm" and are moved back to the hot tier. Once marked as _warm_, the data blocks are again subjected to the temperature scan. However, large sequential reads (such as index and antivirus scans) on inactive data in the cool tier don't "warm" the data nor do they trigger inactive data to be moved back to the hot tier. Additionally, sequential reads for Azure NetApp Files, cross-region replication, or cross-zone replication do ***not*** "warm" the data.
+By `Default` (unless cool access retrieval policy is configured otherwise), data blocks on the cool tier that are read randomly again become "warm" and are moved back to the hot tier. Once marked as _warm_, the data blocks are again subjected to the temperature scan. However, large sequential reads (such as index and antivirus scans) on inactive data in the cool tier don't "warm" the data nor do they trigger inactive data to be moved back to the hot tier.
>[!IMPORTANT] >If you're using a third-party backup service, configure it to use NDMP instead of the CIFS or NFS protocols. NDMP reads do not affect the temperature of the data.
azure-netapp-files Manage Cool Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-netapp-files/manage-cool-access.md
The standard storage with cool access feature provides options for the ΓÇ£coolne
* You can convert an existing Standard service-level capacity pool into a cool-access capacity pool to create cool access volumes. However, once the capacity pool is enabled for cool access, you can't convert it back to a non-cool-access capacity pool. * A cool-access capacity pool can contain both volumes with cool access enabled and volumes with cool access disabled. * To prevent data retrieval from the cool tier to the hot tier during sequential read operations (for example, antivirus or other file scanning operations), set the cool access retrieval policy to "Default" or "Never." For more information, see [Enable cool access on a new volume](#enable-cool-access-on-a-new-volume).
- * Sequential reads from Azure NetApp Files backup, cross-zone replication, and cross-zone replication do not impact the temperature of the data.
- * If you're using a third-party backup service, configure it to use NDMP instead of the CIFS or NFS protocols. NDMP reads do not affect the temperature of the data.
* After the capacity pool is configured with the option to support cool access volumes, the setting can't be disabled at the _capacity pool_ level. However, you can turn on or turn off the cool access setting at the volume level anytime. Turning off the cool access setting at the _volume_ level stops further tiering of data.ΓÇ» * You can't use [large volume](large-volumes-requirements-considerations.md) with Standard storage with cool access. * See [Resource limits for Azure NetApp Files](azure-netapp-files-resource-limits.md#resource-limits) for maximum number of volumes supported for cool access per subscription per region.
-* Considerations for using cool access with [cross-region replication](cross-region-replication-requirements-considerations.md) (CRR) and [cross-zone replication](cross-zone-replication-introduction.md):
- * If the volume is in a CRR relationship as a source volume, you can enable cool access on it only if the [mirror state](cross-region-replication-display-health-status.md#display-replication-status) is `Mirrored`. Enabling cool access on the source volume automatically enables cool access on the destination volume.
- * If the volume is in a CRR relationship as a destination volume (data protection volume), enabling cool access isn't supported for the volume.
- * The cool access setting is updated automatically on the destination volume to be the same as the source volume. When you update the cool access setting on the source volume, the same setting is applied at the destination volume.
-* Considerations for using cool access with [Azure NetApp Files backup](backup-requirements-considerations.md):
- * When a backup is in progress for a volume, you canΓÇÖt enable cool access on the volume.
- * If a volume already contains cool-tiered data, you canΓÇÖt enable backup for the volume.
- * If backup is already enabled on a volume, you can enable cool access only if the baseline backup is complete.
+* Considerations for using cool access with [cross-region replication](cross-region-replication-requirements-considerations.md) and [cross-zone replication](cross-zone-replication-introduction.md):
+ * The cool access setting on the destination is updated automatically to match the source volume whenever the setting is changed on the source volume or during authorizing or performing a reverse resync of the replication. Changes to the cool access setting on the destination volume don't affect the setting on the source volume.
* Considerations for using cool access with [snapshot restore](snapshots-restore-new-volume.md): * When restoring a snapshot of a cool access enabled volume to a new volume, the new volume inherits the cool access configuration from the parent volume. Once the new volume is created, the cool access settings can be modified. * You can't restore from a snapshot of a non-cool-access volume to a cool access volume. Likewise, you can't restore from a snapshot of a cool access volume to a non-cool-access volume.
cloud-services-extended-support Available Sizes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/available-sizes.md
Title: Available sizes for Azure Cloud Services (extended support) description: Available sizes for Azure Cloud Services (extended support) deployments -+
cloud-services-extended-support Certificates And Key Vault https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/certificates-and-key-vault.md
Title: Store and use certificates in Azure Cloud Services (extended support) description: Processes for storing and using certificates in Azure Cloud Services (extended support) -+
cloud-services-extended-support Cloud Services Model And Package https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/cloud-services-model-and-package.md
Title: What is the Azure Cloud Service (extended support) model and package description: Describes the cloud service (extended support) model (.csdef, .cscfg) and package (.cspkg) in Azure -+
cloud-services-extended-support Deploy Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/deploy-portal.md
Title: Deploy Azure Cloud Services (extended support) - Azure portal description: Deploy Azure Cloud Services (extended support) by using the Azure portal. -+
cloud-services-extended-support Deploy Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/deploy-powershell.md
Title: Deploy Azure Cloud Services (extended support) - Azure PowerShell description: Deploy Azure Cloud Services (extended support) by using Azure PowerShell. -+
cloud-services-extended-support Deploy Prerequisite https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/deploy-prerequisite.md
Title: Prerequisites for deploying Cloud Services (extended support) description: Learn about the prerequisites for deploying Azure Cloud Services (extended support). -+
cloud-services-extended-support Deploy Sdk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/deploy-sdk.md
Title: Deploy Azure Cloud Services (extended support) - SDK description: Deploy Azure Cloud Services (extended support) by using the Azure SDK. -+
cloud-services-extended-support Deploy Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/deploy-template.md
Title: Deploy Azure Cloud Services (extended support) - ARM template description: Deploy Azure Cloud Services (extended support) by using an ARM template. -+
cloud-services-extended-support Enable Alerts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/enable-alerts.md
Title: Enable Monitoring in Cloud Services (extended support) using the Azure portal description: Enable monitoring for Cloud Services (extended support) instances using the Azure portal -+
cloud-services-extended-support Enable Key Vault Virtual Machine https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/enable-key-vault-virtual-machine.md
Title: Apply the Key Vault VM extension in Azure Cloud Services (extended support) description: Learn about the Key Vault VM extension for Windows and how to enable it in Azure Cloud Services. -+
cloud-services-extended-support Enable Rdp https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/enable-rdp.md
Title: Apply the Remote Desktop in Cloud Services (extended support) description: Enable Remote Desktop for Cloud Services (extended support) -+
cloud-services-extended-support Enable Wad https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/enable-wad.md
Title: Apply the Microsoft Azure diagnostics extension in Cloud Services (extended support) description: Apply the Microsoft Azure diagnostics extension for Cloud Services (extended support) -+
cloud-services-extended-support Extensions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/extensions.md
Title: Extensions for Cloud Services (extended support) description: Extensions for Cloud Services (extended support) -+
cloud-services-extended-support Feature Support Analysis https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/feature-support-analysis.md
Title: Feature Analysis Cloud Services vs Virtual Machine Scale Sets description: Learn about the feature set available in Cloud Services and Virtual Machine Scale Sets -+
cloud-services-extended-support Generate Template Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/generate-template-portal.md
Title: Generate ARM Template for Cloud Services (extended support) using the Azure portal description: Generate and download ARM Template and parameter file for Cloud Services (extended support) using the Azure portal -+
cloud-services-extended-support Non Vnet Migration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/non-vnet-migration.md
Title: Migrate cloud services not in a virtual network to a virtual network description: How to migrate nonvnet cloud services to a virtual network -+
cloud-services-extended-support Override Sku https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/override-sku.md
Title: Override SKU information over CSCFG/CSDEF for Azure Cloud Services (extended support) description: This article describes how to override SKU information in .cscfg and .csdef files for Azure Cloud Services (extended support). -+
cloud-services-extended-support Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/overview.md
Title: About Azure Cloud Services (extended support) description: Learn about the child elements of the Network Configuration element of the service configuration file, which specifies Virtual Network and DNS values. -+
cloud-services-extended-support Sample Create Cloud Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/sample-create-cloud-service.md
Title: Azure PowerShell samples - Create an Azure Cloud Service (extended support) description: Sample scripts for creating Azure Cloud Service (extended support) deployments -+
cloud-services-extended-support Sample Get Cloud Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/sample-get-cloud-service.md
Title: Azure PowerShell samples - Get Azure Cloud Service (extended support) details description: Sample scripts for retrieving information about an Azure Cloud Services (extended support) deployment -+
cloud-services-extended-support Sample Reset Cloud Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/sample-reset-cloud-service.md
Title: Azure PowerShell samples - Reset Azure Cloud Services (extended support) description: Sample scripts for resetting an Azure Cloud Service (extended support) deployment -+
cloud-services-extended-support Sample Update Cloud Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/sample-update-cloud-service.md
Title: Azure PowerShell samples - Update an Azure Cloud Service (extended support) description: Sample scripts for updating Azure Cloud Service (extended support) deployments -+
cloud-services-extended-support Schema Cscfg File https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/schema-cscfg-file.md
Title: Azure Cloud Services (extended support) Definition Schema (.cscfg File) | Microsoft Docs description: Information related to the definition schema for Cloud Services (extended support) -+ Last updated 07/24/2024
cloud-services-extended-support Schema Cscfg Networkconfiguration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/schema-cscfg-networkconfiguration.md
Title: Azure Cloud Services (extended support) NetworkConfiguration Schema | Microsoft Docs description: Information related to the network configuration schema for Cloud Services (extended support) -+ Last updated 07/24/2024
cloud-services-extended-support Schema Cscfg Role https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/schema-cscfg-role.md
Title: Azure Cloud Services (extended support) Role Schema | Microsoft Docs description: Information related to the role schema for Cloud Services (extended support) -+ Last updated 07/24/2024
cloud-services-extended-support Schema Csdef File https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/schema-csdef-file.md
Title: Azure Cloud Services (extended support) Definition Schema (csdef File) | Microsoft Docs description: Information related to the definition schema (csdef) for Cloud Services (extended support) -+ Last updated 07/24/2024
cloud-services-extended-support Schema Csdef Loadbalancerprobe https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/schema-csdef-loadbalancerprobe.md
Title: Azure Cloud Services (extended support) Def. LoadBalancerProbe Schema | Microsoft Docs description: Information related to the load balancer probe schema for Cloud Services (extended support) -+ Last updated 07/24/2024
cloud-services-extended-support Schema Csdef Networktrafficrules https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/schema-csdef-networktrafficrules.md
Title: Azure Cloud Services (extended support) Def. NetworkTrafficRules Schema | Microsoft Docs description: Information related to the network traffic rules associated with Cloud Services (extended support) -+ Last updated 07/24/2024
cloud-services-extended-support Schema Csdef Webrole https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/schema-csdef-webrole.md
Title: Azure Cloud Services (extended support) Def. WebRole Schema | Microsoft Docs description: Information related to the web role for Cloud Services (extended support) -+ Last updated 07/24/2024
cloud-services-extended-support Schema Csdef Workerrole https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/schema-csdef-workerrole.md
Title: Azure Cloud Services (extended support) Def. WorkerRole Schema | Microsoft Docs description: Information related to the worker role schema for Cloud Services (extended support) -+ Last updated 07/24/2024
cloud-services-extended-support States https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/states.md
Title: Available States for Azure Cloud Services (extended support) description: Available Power and Provisioning States for Azure Cloud Services (extended support) -+ Last updated 07/24/2024
cloud-services-extended-support Support Help https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/support-help.md
Title: Azure Cloud Services (extended support) support and help options
description: How to obtain help and support for questions or problems when you create solutions using Azure Cloud Services (extended support). -+ Last updated 07/24/2024
cloud-services-extended-support Swap Cloud Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-services-extended-support/swap-cloud-service.md
Title: Swap or switch deployments in Azure Cloud Services (extended support) description: Learn how to swap or switch between deployments in Azure Cloud Services (extended support). -+
communication-services Real Time Transcription https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/concepts/call-automation/real-time-transcription.md
+
+ Title: Generate real-time transcripts
+
+description: Provides an overview of what real-time transcription is
++++ Last updated : 07/16/2024++++
+# Generating real-time transcripts
+
+Real-time transcriptions are a crucial component in any major business for driving improved customer service experience. Powered by Azure Communication Services and Azure AI Services integration, developers can now use real-time transcriptions through Call Automation SDKs.
+
+Using the Azure Communication Services real-time transcription, you can easily integrate your Azure AI Services resource with Azure Communication Services to generate transcripts directly during the call. This eliminates the need for developers to extract audio content and deal with the overhead of converting audio into text on your side. You can store the contents of this transcript to use later on for creating a history of the call, summarizing the call to save an agent's time, and even feeding it into your training/learning modules to help improve your contact center agents' customer interactions.
+
+Out of the box Microsoft utilizes a Universal Language Model as a base model that is trained with Microsoft-owned data and reflects commonly used spoken language. This model is pretrained with dialects and phonetics representing various common domains. For more information about supported languages, see [Languages and voice support for the Speech service](../../../../articles/ai-services/speech-service/language-support.md).
+
+## Common use cases
+
+### Improved customer experience
+Assist agents better understand customer needs and respond more quickly and accurately, leading to a better overall customer experience.
+
+### Increased efficency
+Help agents focus on the conversation rather than note-taking, allowing them to handle more calls and improve productivity
+
+### Context for agents
+Provide context to an agent before the agent picks up the call, this way the agent knows the information that the caller has provided avoiding any need for the caller to repeat their issue.
+
+### Derive insights
+Using the transcript generated throughout the call, you can leverage other AI tools to gain live, real-time insights that will help agents and supervisors improve their interactions with customers.
+
+## Sample flow of real-time transcription using Call Automation
+![Diagram of real-time transcription flow.](./media/transcription.png)
+
+## Next Steps
+- Check out our how-to guide to learn [how-to use our Real-time Transcription](../../how-tos/call-automation/real-time-transcription-tutorial.md) to users.
+- Learn about [usage and operational logs](../analytics/logs/call-automation-logs.md) published by call automation.
+
communication-services Control Mid Call Media Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/how-tos/call-automation/control-mid-call-media-actions.md
Previously updated : 11/16/2023 Last updated : 07/16/2024
if event.type == "Microsoft.Communication.ContinuousDtmfRecognitionStopped":
app.logger.info("Tone stoped: context=%s", event.data["operationContext"]) ``` --+
+### Hold
+The hold action allows developers to temporarily pause a conversation between a participant and a system or agent. This can be useful in scenarios where the participant needs to be transferred to another agent or department or when the agent needs to consult a supervisor in the background before continuing the conversation. During this time you can choose to play audio to the participant that is on hold.
+
+### [csharp](#tab/csharp)
+```csharp
+// Option 1: Hold without additional options
+await callAutomationClient.GetCallConnection(callConnectionId)
+ .GetCallMedia().HoldAsync(c2Target);
+
+/*
+// Option 2: Hold with play source
+PlaySource playSource = /* initialize playSource */;
+await callAutomationClient.GetCallConnection(callConnectionId)
+ .GetCallMedia().HoldAsync(c2Target, playSource);
+
+// Option 3: Hold with options
+var holdOptions = new HoldOptions(target)
+{
+ OperationCallbackUri = new Uri(""),
+ OperationContext = "holdcontext"
+};
+await callMedia.HoldAsync(holdOptions);
+*/
+```
+
+### [java](#tab/java)
+```java
+// Option 1: Hold with options
+PlaySource playSource = /* initialize playSource */;
+HoldOptions holdOptions = new HoldOptions(target)
+ .setOperationCallbackUrl(appConfig.getBasecallbackuri())
+ .setPlaySource(playSource)
+ .setOperationContext("holdPstnParticipant");
+
+client.getCallConnection(callConnectionId).getCallMedia().holdWithResponse(holdOptions, Context.NONE);
+
+/*
+// Option 2: Hold without additional options
+client.getCallConnection(callConnectionId).getCallMedia().hold(target);
+*/
+```
+
+### [JavaScript](#tab/javascript)
+```javascript
+// Option 1: Hold with options
+const options = {
+ playSource: playSource,
+ operationContext: "holdUserContext",
+ operationCallbackUrl: "URL" // replace with actual callback URL
+};
+await callMedia.hold(targetuser, options);
+
+/*
+// Option 2: Hold without additional options
+await callMedia.hold(targetuser);
+*/
+```
+
+### [Python](#tab/python)
+```python
+# Option 1: Hold without additional options
+call_connection_client.hold(target_participant=PhoneNumberIdentifier(TARGET_PHONE_NUMBER))
+
+'''
+# Option 2: Hold with options
+call_connection_client.hold(
+ target_participant=PhoneNumberIdentifier(TARGET_PHONE_NUMBER),
+ play_source=play_source,
+ operation_context="holdUserContext",
+ operation_callback_url="URL" # replace with actual callback URL
+)
+'''
+```
+--
+### Unhold
+The unhold action allows developers to resume a conversation between a participant and a system or agent that was previously paused. When the participant is taken off hold they will be able to hear the system or agent again.
+
+### [csharp](#tab/csharp)
+``` csharp
+var unHoldOptions = new UnholdOptions(target)
+{
+ OperationContext = "UnHoldPstnParticipant"
+};
+
+// Option 1
+var UnHoldParticipant = await callMedia.UnholdAsync(unHoldOptions);
+
+/*
+// Option 2
+var UnHoldParticipant = await callMedia.UnholdAsync(target);
+*/
+```
+
+### [java](#tab/java)
+``` java
+// Option 1
+client.getCallConnection(callConnectionId).getCallMedia().unholdWithResponse(target, "unholdPstnParticipant", Context.NONE);
+
+/*
+// Option 2
+client.getCallConnection(callConnectionId).getCallMedia().unhold(target);
+*/
+```
+
+### [JavaScript](#tab/javascript)
+```javascript
+const unholdOptions = {
+ operationContext: "unholdUserContext"
+};
+
+// Option 1
+await callMedia.unhold(target);
+
+/*
+// Option 2
+await callMedia.unhold(target, unholdOptions);
+*/
+```
+
+### [Python](#tab/python)
+```python
+# Option 1
+call_connection_client.unhold(target_participant=PhoneNumberIdentifier(TARGET_PHONE_NUMBER))
+
+'''
+# Option 2
+call_connection_client.unhold(target_participant=PhoneNumberIdentifier(TARGET_PHONE_NUMBER), operation_context="holdUserContext")
+'''
+```
+--
communication-services Real Time Transcription Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/communication-services/how-tos/call-automation/real-time-transcription-tutorial.md
+
+ Title: Add real-time transcription into your applications
+
+description: Provides a how-to guide for adding real-time transcription
++++ Last updated : 07/16/2024++
+zone_pivot_groups: acs-js-csharp-java-python
++
+# Add real-time transcription into your application
++
+This guide helps you better understand the different ways you can use Azure Communication Services offering of real-time transcription through Call Automation SDKs.
+
+### Prerequisites
+- Azure account with an active subscription, for details see [Create an account for free.](https://azure.microsoft.com/free/)
+- Azure Communication Services resource, see [Create an Azure Communication Services resource](../../quickstarts/create-communication-resource.md?tabs=windows&pivots=platform-azp)
+- Create and connect [Azure AI services to your Azure Communication Services resource](../../concepts/call-automation/azure-communication-services-azure-cognitive-services-integration.md).
+- Create a [custom subdomain](../../../ai-services/cognitive-services-custom-subdomains.md) for your Azure AI services resource.
+- Create a new web service application using the [Call Automation SDK](../../quickstarts/call-automation/quickstart-make-an-outbound-call.md).
+
+## Setup a WebSocket Server
+Azure Communication Services requires your server application to set up a WebSocket server to stream transcription in real-time. WebSocket is a standardized protocol that provides a full-duplex communication channel over a single TCP connection. You can optionally use Azure services Azure WebApps that allows you to create an application to receive transcripts over a websocket connection. Follow thisΓÇ»[quickstart](https://azure.microsoft.com/blog/introduction-to-websockets-on-windows-azure-web-sites/).
+
+## Establish a call
+In this quickstart, we assume that you're already familiar with starting calls. If you need to learn more about starting and establishing calls, you can follow ourΓÇ»[quickstart](../../quickstarts/call-automation/quickstart-make-an-outbound-call.md). For the purposes of this quickstart, we're going through the process of starting transcription for both incoming calls and outbound calls.
+
+When working with real-time transcription, you have a couple of options on when and how to start transcription:
+
+**Option 1 -** Starting at time of answering or creating a call
+
+**Option 2 -** Starting transcription during an ongoing call
+
+In this tutorial, we're demonstrating option 2, starting transcription during an ongoing call. By default the 'startTranscription' is set to false at time of answering or creating a call.
+++++
+## Event codes
+
+| Event | code | subcode | Message |
+| | | | |
+| TranscriptionStarted | 200 | 0 | Action completed successfully. |
+| TranscriptionStopped | 200 | 0 | Action completed successfully. |
+| TranscriptionUpdated | 200 | 0 | Action completed successfully. |
+| TranscriptionFailed | 400 | 8581 | Action failed, StreamUrl isn't valid. |
+| TrasncriptionFailed | 400 | 8565 | Action failed due to a bad request to Cognitive Services. Check your input parameters. |
+| TranscriptionFailed | 400 | 8565 | Action failed due to a request to Cognitive Services timing out. Try again later or check for any issues with the service. |
+| TranscriptionFailed | 400 | 8605 | Custom speech recognition model for Transcription is not supported. |
+| TranscriptionFailed | 400 | 8523 | Invalid Request, locale is missing. |
+| TranscriptionFailed | 400 | 8523 | Invalid Request, only locale that contain region information are supported. |
+| TranscriptionFailed | 405 | 8520 | Transcription functionality is not supported at this time. |
+| TranscriptionFailed | 405 | 8520 | UpdateTranscription is not supported for connection created with Connect interface. |
+| TranscriptionFailed | 400 | 8528 | Action is invalid, call already terminated. |
+| TranscriptionFailed | 405 | 8520 | Update transcription functionality is not supported at this time. |
+| TranscriptionFailed | 405 | 8522 | Request not allowed when Transcription url not set during call setup. |
+| TranscriptionFailed | 405 | 8522 | Request not allowed when Cognitive Service Configuration not set during call setup. |
+| TranscriptionFailed | 400 | 8501 | Action is invalid when call is not in Established state. |
+| TranscriptionFailed | 401 | 8565 | Action failed due to a Cognitive Services authentication error. Check your authorization input and ensure it's correct. |
+| TranscriptionFailed | 403 | 8565 | Action failed due to a forbidden request to Cognitive Services. Check your subscription status and ensure it's active. |
+| TranscriptionFailed | 429 | 8565 | Action failed, requests exceeded the number of allowed concurrent requests for the cognitive services subscription. |
+| TranscriptionFailed | 500 | 8578 | Action failed, not able to establish WebSocket connection. |
+| TranscriptionFailed | 500 | 8580 | Action failed, transcription service was shut down. |
+| TranscriptionFailed | 500 | 8579 | Action failed, transcription was canceled. |
+| TranscriptionFailed | 500 | 9999 | Unknown internal server error. |
++
+## Known issues
+* For 1:1 calls with ACS users using Client SDKs startTranscription = True isn't currently supported.
container-apps Add Ons Qdrant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/add-ons-qdrant.md
Title: 'Tutorial: Connect to a Qdrant vector database in Azure Container Apps (p
description: Learn to use the Container Apps Qdrant vector database add-on. -+ Last updated 11/02/2023
container-apps Application Lifecycle Management https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/application-lifecycle-management.md
Title: Application lifecycle management in Azure Container Apps
description: Learn about the full application lifecycle in Azure Container Apps -+ Last updated 5/28/2024
container-apps Aspire Dashboard https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/aspire-dashboard.md
Title: Read real time app data with .NET Aspire Dashboard in Azure Container App
description: Use real time log data with .NET Aspire Dashboard in Azure Container Apps. -+ Last updated 05/09/2024
container-apps Authentication Entra https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/authentication-entra.md
Title: Enable authentication and authorization in Azure Container Apps with Micr
description: Learn to use the built-in Microsoft Entra authentication provider in Azure Container Apps. -+ Last updated 04/20/2022
container-apps Authentication Facebook https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/authentication-facebook.md
Title: Enable authentication and authorization in Azure Container Apps with Face
description: Learn to use the built-in Facebook authentication provider in Azure Container Apps. -+ Last updated 04/06/2022
container-apps Authentication Github https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/authentication-github.md
Title: Enable authentication and authorization in Azure Container Apps with GitH
description: Learn to use the built-in GitHub authentication provider in Azure Container Apps. -+ Last updated 04/20/2022
container-apps Authentication Openid https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/authentication-openid.md
Title: Enable authentication and authorization in Azure Container Apps with a Cu
description: Learn to use the built-in Custom OpenID Connect authentication provider in Azure Container Apps. -+ Last updated 04/20/2022
container-apps Authentication Twitter https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/authentication-twitter.md
Title: Enable authentication and authorization in Azure Container Apps with Twit
description: Learn to use the built-in Twitter authentication provider in Azure Container Apps. -+ Last updated 04/20/2022
container-apps Authentication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/authentication.md
Title: Authentication and authorization in Azure Container Apps
description: Use built-in authentication in Azure Container Apps -+ Last updated 04/20/2022
container-apps Azure Arc Create Container App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/azure-arc-create-container-app.md
Title: 'Tutorial: Create a container app on Azure Arc'
description: Get started with Azure Container Apps on Azure Arc-enabled Kubernetes deploying your first app. -+ Last updated 3/20/2023
container-apps Azure Arc Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/azure-arc-overview.md
Title: Container Apps on Azure Arc Overview
description: Learn how Azure Arc integrates with Azure Container Apps -+ Last updated 07/18/2024
container-apps Azure Pipelines https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/azure-pipelines.md
Title: Publish revisions with Azure Pipelines in Azure Container Apps
description: Learn to automatically create new revisions in Azure Container Apps using an Azure DevOps pipeline -+ - devx-track-azurecli - ignite-2023
container-apps Azure Resource Manager Api Spec https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/azure-resource-manager-api-spec.md
Title: Azure Container Apps ARM and YAML template specifications
description: Explore the available properties in the Azure Container Apps ARM and YAML templates. -+ Last updated 10/24/2023
container-apps Billing https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/billing.md
Title: Billing in Azure Container Apps
description: Learn how billing is calculated in Azure Container Apps -+ - ignite-2023
container-apps Certificates Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/certificates-overview.md
Title: Certificates in Azure Container Apps
description: Learn the different options available to using and managing secure certificates in Azure Container Apps. -+ Last updated 04/15/2024
container-apps Client Certificate Authorization https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/client-certificate-authorization.md
Title: Configure client certificate authentication in Azure Container Apps
description: How to configure client authentication in Azure Container Apps. -+ Last updated 06/13/2024
container-apps Code To Cloud Options https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/code-to-cloud-options.md
Title: Code to cloud options in Azure Container Apps
description: Learn about the different options to deploy a container app directly from your development environment. -+ Last updated 01/26/2024
container-apps Communicate Between Microservices https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/communicate-between-microservices.md
Title: 'Tutorial: Communication between microservices in Azure Container Apps'
description: Learn how to communicate between microservices deployed in Azure Container Apps -+ Last updated 05/13/2022
container-apps Compare Options https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/compare-options.md
Title: 'Comparing Container Apps with other Azure container options'
description: Understand when to use Azure Container Apps and how it compares to other container options including Azure Container Instances, Azure App Service, Azure Functions, and Azure Kubernetes Service. -+ Last updated 07/12/2024
container-apps Connect Apps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/connect-apps.md
Title: Connect applications in Azure Container Apps
description: Learn to deploy multiple applications that communicate together in Azure Container Apps. -+ Last updated 07/23/2024
container-apps Connect Services https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/connect-services.md
Title: 'Tutorial: Connect to an Azure Cache for Redis service in Azure Container
description: Connect a service in development and then promote to production in Azure Container Apps. -+ Last updated 06/13/2023
container-apps Containerapp Up https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/containerapp-up.md
Title: Deploy Azure Container Apps with the az containerapp up command
description: How to deploy a container app with the az containerapp up command -+ - devx-track-azurecli - ignite-2023
container-apps Containers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/containers.md
Title: Containers in Azure Container Apps
description: Learn how containers are managed and configured in Azure Container Apps -+ Last updated 08/29/2023
container-apps Cors https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/cors.md
Title: Configure CORS in the Azure portal for Azure Container Apps
description: Learn how to configure your static web app to allow cross origin resource sharing (CORS) for Azure Container Apps -+ Last updated 04/21/2023
container-apps Custom Domains Certificates https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/custom-domains-certificates.md
Title: Custom domain names and certificates in Azure Container Apps
description: Learn to manage custom domain names and certificates in Azure Container Apps -+ Last updated 05/28/2024
container-apps Custom Domains Managed Certificates https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/custom-domains-managed-certificates.md
Title: Custom domain names and free managed certificates in Azure Container Apps
description: Learn to configure custom domain names and managed certificates in Azure Container Apps -+ Last updated 03/08/2024
container-apps Deploy Artifact https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/deploy-artifact.md
description: Use a prebuilt artifact file to deploy to Azure Container Apps.
-+ Last updated 02/27/2024
container-apps Dotnet Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/dotnet-overview.md
Title: .NET on Azure Container Apps overview
description: Learn about the tools and resources needed to run .NET and ASP.NET Core applications on Azure Container Apps. -+ Last updated 06/13/2024
container-apps Environment Custom Dns Suffix https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/environment-custom-dns-suffix.md
Title: Custom environment DNS suffix in Azure Container Apps
description: Learn to manage custom DNS suffix and TLS certificate in Azure Container Apps environments -+ Last updated 07/18/2024
container-apps Environment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/environment.md
Title: Azure Container Apps environments
description: Learn how environments are managed in Azure Container Apps. -+ Last updated 08/29/2023
container-apps Get Started Existing Container Image Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/get-started-existing-container-image-portal.md
Title: 'Quickstart: Deploy an existing container image in the Azure portal'
description: Deploy an existing container image to Azure Container Apps using the Azure portal. -+ Last updated 12/13/2021
container-apps Get Started Existing Container Image https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/get-started-existing-container-image.md
Title: 'Quickstart: Deploy an existing container image with the command line'
description: Deploy an existing container image to Azure Container Apps with the Azure CLI or PowerShell. -+ Last updated 08/31/2022
container-apps Get Started https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/get-started.md
Title: 'Quickstart: Deploy your first container app with containerapp up'
description: Deploy your first application to Azure Container Apps using the Azure CLI containerapp up command. -+ Last updated 01/10/2024
container-apps Github Actions Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/github-actions-cli.md
Title: Generate GitHub Actions workflow with Azure CLI in Azure Container Apps
description: Learn to automatically create GitHub Actions workflow in Azure Container Apps -+ Last updated 11/09/2022
container-apps Github Actions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/github-actions.md
Title: Publish revisions with GitHub Actions in Azure Container Apps
description: Learn to automatically create new revisions in Azure Container Apps using a GitHub Actions workflow. -+ Last updated 11/09/2022
container-apps Health Probes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/health-probes.md
Title: Health probes in Azure Container Apps
description: Check startup, liveness, and readiness with Azure Container Apps health probes -+ Last updated 08/29/2023
container-apps Ingress How To https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/ingress-how-to.md
Title: Configure Ingress for your app in Azure Container Apps
description: How to configure ingress for your container app -+ Last updated 06/13/2024
container-apps Ingress Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/ingress-overview.md
Title: Ingress in Azure Container Apps
description: Ingress options for Azure Container Apps -+ Last updated 05/03/2023
container-apps Ip Restrictions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/ip-restrictions.md
Title: Set up IP ingress restrictions in Azure Container Apps
description: Enable IP restrictions to limit access to your app with Azure Container Apps. -+ Last updated 03/28/2023
container-apps Java Admin Eureka Integration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-admin-eureka-integration.md
Title: "Tutorial: Integrate Admin for Spring with Eureka Server for Spring in Az
description: Learn to integrate Admin for Spring with Eureka Server for Spring in Azure Container Apps. -+ Last updated 07/15/2024
container-apps Java Admin For Spring Usage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-admin-for-spring-usage.md
Title: Configure settings for the Admin for Spring component in Azure Container
description: Learn to configure the Admin for Spring component in Azure Container Apps. -+ Last updated 07/15/2024
container-apps Java Admin https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-admin.md
Title: "Tutorial: Connect to a managed Admin for Spring in Azure Container Apps"
description: Learn to use a managed Admin for Spring in Azure Container Apps. -+ Last updated 07/15/2024
container-apps Java Build Environment Variables https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-build-environment-variables.md
Title: Build environment variables for Java in Azure Container Apps
description: Learn about Java image build from source code via environment variables. -+ Last updated 02/27/2024
container-apps Java Component Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-component-logs.md
Title: Observability of managed Java components in Azure Container Apps
description: Learn how to retrieve logs of managed Java components in Azure Container Apps. -+ Last updated 05/01/2024
container-apps Java Config Server Usage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-config-server-usage.md
Title: Configure settings for the Config Server for Spring component in Azure Co
description: Learn how to configure a Config Server for Spring component for your container app. -+ Last updated 05/23/2024
container-apps Java Config Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-config-server.md
Title: "Tutorial: Connect to a managed Config Server for Spring in Azure Contain
description: Learn how to connect a Config Server for Spring to your container app. -+ Last updated 03/13/2024
container-apps Java Dynamic Log Level https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-dynamic-log-level.md
Title: Set dynamic logger level to troubleshoot Java applications in Azure Conta
description: Learn how to use dynamic logger level settings to debug your Java applications running on Azure Container Apps. -+ Last updated 05/10/2024
container-apps Java Eureka Server Usage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-eureka-server-usage.md
Title: Configure settings for the Eureka Server for Spring component in Azure Co
description: Learn to configure the Eureka Server for Spring component in Azure Container Apps. -+ Last updated 03/15/2024
container-apps Java Eureka Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-eureka-server.md
Title: "Tutorial: Connect to a managed Eureka Server for Spring in Azure Contain
description: Learn to use a managed Eureka Server for Spring in Azure Container Apps. -+ Last updated 07/15/2024
container-apps Java Get Started https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-get-started.md
Title: Launch your first Java application in Azure Container Apps
description: Learn how to deploy a java project in Azure Container Apps. -+ Last updated 05/07/2024
container-apps Java Memory Fit https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-memory-fit.md
Title: How to use memory efficiently for Java apps in Azure Container Apps
description: Optimization of default configurations to enhance Java application performance and efficiency. -+ Last updated 02/27/2024
container-apps Java Metrics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-metrics.md
Title: How to enable Java metrics for Java apps in Azure Container Apps
description: Java metrics and configuration Azure Container Apps. -+ Last updated 05/10/2024
container-apps Java Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/java-overview.md
Title: Java on Azure Container Apps overview
description: Learn about the tools and resources needed to run Java applications on Azure Container Apps. -+ Last updated 07/16/2024
container-apps Jobs Get Started Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/jobs-get-started-cli.md
Title: Create a job with Azure Container Apps
description: Learn to create an on-demand or scheduled job in Azure Container Apps -+ Last updated 08/17/2023
container-apps Jobs Get Started Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/jobs-get-started-portal.md
Title: Create a job with Azure Container Apps using the Azure portal
description: Learn to create an on-demand or scheduled job in Azure Container Apps using the Azure portal -+ Last updated 08/21/2023
container-apps Jobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/jobs.md
Title: Jobs in Azure Container Apps
description: Learn about jobs in Azure Container Apps -+ Last updated 04/02/2024
container-apps Key Vault Certificates Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/key-vault-certificates-manage.md
Title: Import certificates from Azure Key Vault to Azure Container Apps
description: Learn to managing secure certificates in Azure Container Apps. -+ Last updated 05/09/2024
container-apps Manage Secrets https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/manage-secrets.md
Title: Manage secrets in Azure Container Apps
description: Learn to store and consume sensitive configuration values in Azure Container Apps. -+ Last updated 03/23/2023
container-apps Microservices Dapr Azure Resource Manager https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/microservices-dapr-azure-resource-manager.md
Title: "Tutorial: Deploy a Dapr application to Azure Container Apps with an Azur
description: Deploy a Dapr application to Azure Container Apps with an Azure Resource Manager or Bicep template. -+ Last updated 06/29/2022
container-apps Microservices https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/microservices.md
Title: Microservices with Azure Containers Apps
description: Build a microservice in Azure Container Apps. -+ Last updated 06/23/2022
container-apps Network Proxy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/network-proxy.md
Title: Network proxying in Azure Container Apps
description: Learn how network requests are proxied and routed in Azure Container Apps. -+ Last updated 08/02/2023
container-apps Opentelemetry Agents https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/opentelemetry-agents.md
Title: Collect and read OpenTelemetry data in Azure Container Apps (preview)
description: Learn to record and query data collected using OpenTelemetry in Azure Container Apps. -+ Last updated 03/08/2024
container-apps Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/overview.md
Title: Azure Container Apps overview
description: Learn about common scenarios and uses for Azure Container Apps. -+ Last updated 11/14/2023
container-apps Plans https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/plans.md
Title: Azure Container Apps plan types
description: Compare different plains available in Azure Container Apps -+ - ignite-2023
container-apps Quickstart Code To Cloud https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/quickstart-code-to-cloud.md
Title: "Quickstart: Build and deploy your app from your local filesystem to Azur
description: Build your container app from local source and deploy in Azure Container Apps using az containerapp up. -+ - devx-track-azurecli - ignite-2023
container-apps Quickstart Repo To Cloud https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/quickstart-repo-to-cloud.md
Title: "Quickstart: Build and deploy from a repository to Azure Container Apps"
description: Build your container app from a code repository and deploy in Azure Container Apps using az containerapp up. -+ - devx-track-azurecli - ignite-2023
container-apps Quotas https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/quotas.md
Title: Quotas for Azure Container Apps
description: Learn about quotas for Azure Container Apps. -+ - ignite-2023
container-apps Revisions Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/revisions-manage.md
Title: Manage revisions in Azure Container Apps
description: Manage revisions in Azure Container Apps -+ Last updated 06/07/2022
container-apps Revisions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/revisions.md
Title: Update and deploy changes in Azure Container Apps
description: Learn how to use revisions to make changes in Azure Container Apps. -+ Last updated 02/01/2024
container-apps Samples https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/samples.md
Title: Azure Container Apps samples
description: Learn how to use Azure Container Apps from existing samples -+ Last updated 05/31/2024
container-apps Scale App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/scale-app.md
Title: Scaling in Azure Container Apps
description: Learn how applications scale in and out in Azure Container Apps. -+ Last updated 12/08/2022
container-apps Services https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/services.md
Title: Connect to services in Azure Container Apps (preview)
description: Learn how to use runtime services in Azure Container Apps. -+ - ignite-2023
container-apps Sessions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/sessions.md
Title: Azure Container Apps dynamic sessions overview
description: Learn how when to use dynamic sessions in Azure Container Apps. -+ Last updated 04/04/2024
container-apps Start Containers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/start-containers.md
Title: Introduction to containers on Azure
description: Get started with containers on Azure with Azure Container Apps -+ Last updated 11/30/2023
container-apps Start Serverless Containers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/start-serverless-containers.md
Title: Using serverless containers on Azure
description: Get started using serverless containers on Azure with Azure Container Apps -+ Last updated 11/30/2023
container-apps Sticky Sessions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/sticky-sessions.md
Title: Session Affinity in Azure Container Apps
description: How to set session affinity (sticky sessions) in Azure Container Apps. -+ Last updated 03/28/2023
container-apps Storage Mounts Azure Files https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/storage-mounts-azure-files.md
Title: "Tutorial: Create an Azure Files volume mount in Azure Container Apps"
description: Learn to create an Azure Files storage mount in Azure Container Apps -+ Last updated 07/19/2022
container-apps Storage Mounts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/storage-mounts.md
Title: Use storage mounts in Azure Container Apps
description: Learn to use temporary and permanent storage mounts in Azure Container Apps -+ Last updated 04/10/2024
container-apps Token Store https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/token-store.md
Title: Enable an authentication token store in Azure Container Apps
description: Learn to secure authentication tokens independent of your application. -+ Last updated 04/04/2024
container-apps Traffic Splitting https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/traffic-splitting.md
Title: Traffic splitting in Azure Container Apps
description: Send a portion of an apps traffic to different revisions in Azure Container Apps. -+ Last updated 03/28/2023
container-apps Tutorial Ci Cd Runners Jobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/tutorial-ci-cd-runners-jobs.md
Title: 'Tutorial: Run GitHub Actions runners and Azure Pipelines agents with Azu
description: Learn to create self-hosted CI/CD runners and agents with jobs in Azure Container Apps -+ Last updated 06/01/2023
container-apps Tutorial Code To Cloud https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/tutorial-code-to-cloud.md
Title: "Tutorial: Build and deploy your app to Azure Container Apps"
description: Build and deploy your app to Azure Container Apps with az containerapp create command. -+ - devx-track-azurecli - devx-track-azurepowershell
container-apps Tutorial Deploy First App Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/tutorial-deploy-first-app-cli.md
Title: 'Tutorial: Deploy your first container app'
description: Deploy your first application to Azure Container Apps. -+ Last updated 03/21/2022
container-apps Tutorial Event Driven Jobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/tutorial-event-driven-jobs.md
Title: 'Tutorial: Deploy an event-driven job with Azure Container Apps'
description: Learn to create a job that processes queue messages with Azure Container Apps -+ Last updated 05/05/2023
container-apps Vnet Custom Internal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/vnet-custom-internal.md
Title: Integrate a virtual network with an internal Azure Container Apps environ
description: Learn how to integrate a VNET to an internal Azure Container Apps environment. -+ Last updated 08/29/2023
container-apps Vnet Custom https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/vnet-custom.md
Title: Integrate a virtual network with an external Azure Container Apps environ
description: Learn how to integrate a VNET with an external Azure Container Apps environment. -+ Last updated 08/31/2022
container-apps Workload Profiles Manage Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/workload-profiles-manage-cli.md
Title: Create a workload profiles environment with the Azure CLI
description: Learn to create an environment with a specialized hardware profile using the Azure CLI. -+ Last updated 08/29/2023
container-apps Workload Profiles Manage Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/workload-profiles-manage-portal.md
Title: Create a workload profiles environment in the Azure portal
description: Learn to create an environment with a specialized hardware profile in the Azure portal. -+ Last updated 08/29/2023
container-apps Workload Profiles Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/container-apps/workload-profiles-overview.md
Title: Workload profiles in Azure Container Apps
description: Learn how to select a workload profile for your container app -+ Last updated 10/11/2023
cost-management-billing Pay By Invoice https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cost-management-billing/manage/pay-by-invoice.md
Previously updated : 08/01/2024 Last updated : 08/02/2024
Users with a Microsoft Customer Agreement must always [submit a request to set u
Currently, customers who have a Microsoft Online Services Program (pay-as-you-go) account must [submit a request to set up pay by wire transfer](#submit-a-request-to-set-up-pay-by-wire-transfer) to Azure support to enable pay by wire transfer. Any user with access to the Microsoft Customer Agreement billing profile can submit the request to pay by wire transfer.
+**Eligibility requirements**: To qualify for wire transfer payments, you must:
+
+- Be an established customer for at least six months and have no outstanding balances
+- Have a subscription cost that exceeds a certain amount (this amount varies by service location)
+ > [!IMPORTANT] > * Pay by wire transfer is only available for customers using Azure on behalf of a company. > * Pay all outstanding charges before switching to pay by wire transfer.
defender-for-cloud Concept Data Security Posture https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/concept-data-security-posture.md
Previously updated : 07/30/2024 Last updated : 08/04/2024 #customer intent: As a security professional, I want to understand how Defender for Cloud enhances data security in a multicloud environment so that I can effectively protect sensitive data.
Changes in sensitivity settings take effect the next time that resources are dis
Sensitive data discovery identifies sensitive resources and their related risk and then helps to prioritize and remediate those risks.
-Defender for Cloud considers a resource sensitive if a Sensitive Information Type (SIT) is detected in it and the customer has configured the SIT to be considered sensitive. Defender for Cloud detects SITs that are considered sensitive by default.
+Defender for Cloud considers a resource sensitive if a Sensitive Information Type (SIT) is detected in it and you have configured the SIT to be considered sensitive. Check out [the list of SITs that are considered sensitive by default](sensitive-info-types.md).
The sensitive data discovery process operates by taking samples of the resourceΓÇÖs data. The sample data is then used to identify sensitive resources with high confidence without performing a full scan of all assets in the resource.
defender-for-cloud Defender For Sql On Machines Vulnerability Assessment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/defender-for-sql-on-machines-vulnerability-assessment.md
Metadata information about the connected machine is also collected. Specifically
You can specify the region where your SQL Vulnerability Assessment data will be stored by choosing the Log Analytics workspace location. Microsoft might replicate to other regions for data resiliency, but Microsoft does not replicate data outside the geography.
+> [!NOTE]
+> Changing the Defender for SQL on Machines plan's Log Analytics workspace will reset the scan results and baseline settings. If you revert to the original Log Analytics workspace within 90 days the the scan results and baseline settings will be made available again.
+ ## Next step > [!div class="nextstepaction"]
defender-for-cloud Permissions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/permissions.md
When you onboard an Amazon Web Services (AWS) connector, Defender for Cloud will
| Defender for Cloud plan | Role created | Permission assigned on AWS account | |--|--|--|
-| Defender CSPM | CspmMonitorAws | To discover AWS resources permissions, read all resources except:<br> "consolidatedbilling:*"<br> "freetier:*"<br> "invoicing:*"<br> "payments:*"<br> "billing:*"<br> "tax:*"<br> "cur:*" |
-| Defender CSPM <br><br> Defender for Servers | DefenderForCloud-AgentlessScanner | To create and clean up disk snapshots (scoped by tag) ΓÇ£CreatedByΓÇ¥: "Microsoft Defender for Cloud" Permissions:<br> "ec2:DeleteSnapshot" "ec2:ModifySnapshotAttribute"<br> "ec2:DeleteTags"<br> "ec2:CreateTags"<br> "ec2:CreateSnapshots"<br> "ec2:CopySnapshot"<br> "ec2:CreateSnapshot"<br> "ec2:DescribeSnapshots"<br> "ec2:DescribeInstanceStatus"<br> Permission to EncryptionKeyCreation "kms:CreateKey"<br> "kms:ListKeys"<br> Permissions to EncryptionKeyManagement "kms:TagResource"<br> "kms:GetKeyRotationStatus"<br> "kms:PutKeyPolicy"<br> "kms:GetKeyPolicy"<br> "kms:CreateAlias"<br> "kms:TagResource"<br> "kms:ListResourceTags"<br> "kms:GenerateDataKeyWithoutPlaintext"<br> "kms:DescribeKey"<br> "kms:RetireGrant"<br> "kms:CreateGrant"<br> "kms:ReEncryptFrom" |
-| Defender CSPM <br><br> Defender for Storage | SensitiveDataDiscovery | Permissions to discover S3 buckets in the AWS account, permission for the Defender for Cloud scanner to access data in the S3 buckets.<br> S3 read only; KMS decrypt "kms:Decrypt" |
-| CIEM | DefenderForCloud-Ciem <br> DefenderForCloud-OidcCiem | Permissions for Ciem Discovery<br> "sts:AssumeRole"<br> "sts:AssumeRoleWithSAML"<br> "sts:GetAccessKeyInfo"<br> "sts:GetCallerIdentity"<br> "sts:GetFederationToken"<br> "sts:GetServiceBearerToken"<br> "sts:GetSessionToken"<br> "sts:TagSession" |
-| Defender for Servers | DefenderForCloud-DefenderForServers | Permissions to configure JIT Network Access: <br>"ec2:RevokeSecurityGroupIngress"<br> "ec2:AuthorizeSecurityGroupIngress"<br> "ec2:DescribeInstances"<br> "ec2:DescribeSecurityGroupRules"<br> "ec2:DescribeVpcs"<br> "ec2:CreateSecurityGroup"<br> "ec2:DeleteSecurityGroup"<br> "ec2:ModifyNetworkInterfaceAttribute"<br> "ec2:ModifySecurityGroupRules"<br> "ec2:ModifyInstanceAttribute"<br> "ec2:DescribeSubnets"<br> "ec2:DescribeSecurityGroups" |
-| Defender for Containers | DefenderForCloud-Containers-K8s | Permissions to List EKS clusters and Collect Data from EKS clusters. <br>"eks:UpdateClusterConfig"<br> "eks:DescribeCluster" |
-| Defender for Containers | DefenderForCloud-DataCollection | Permissions to CloudWatch Log Group created by Defender for Cloud <br>ΓÇ£logs:PutSubscriptionFilter"<br> "logs:DescribeSubscriptionFilters"<br> "logs:DescribeLogGroups" autp "logs:PutRetentionPolicy"<br><br> Permissions to use SQS queue created by Defender for Cloud <br>"sqs:ReceiveMessage"<br> "sqs:DeleteMessage" |
-| Defender for Containers | DefenderForCloud-Containers-K8s-cloudwatch-to-kinesis | Permissions to access Kinesis Data Firehose delivery stream created by Defender for Cloud<br> "firehose:*" |
-| Defender for Containers | DefenderForCloud-Containers-K8s-kinesis-to-s3 | Permissions to access S3 bucket created by Defender for Cloud <br> "s3:GetObject"<br> "s3:GetBucketLocation"<br> "s3:AbortMultipartUpload"<br> "s3:GetBucketLocation"<br> "s3:GetObject"<br> "s3:ListBucket"<br> "s3:ListBucketMultipartUploads"<br> "s3:PutObject" |
+| Defender CSPM | CspmMonitorAws | To discover AWS resources permissions, read all resources except:<br> consolidatedbilling:*<br> freetier:*<br> invoicing:*<br> payments:*<br> billing:*<br> tax:*<br> cur:* |
+| Defender CSPM <br><br> Defender for Servers | DefenderForCloud-AgentlessScanner | To create and clean up disk snapshots (scoped by tag) ΓÇ£CreatedByΓÇ¥: "Microsoft Defender for Cloud" Permissions:<br> ec2:DeleteSnapshot ec2:ModifySnapshotAttribute<br> ec2:DeleteTags<br> ec2:CreateTags<br> ec2:CreateSnapshots<br> ec2:CopySnapshot<br> ec2:CreateSnapshot<br> ec2:DescribeSnapshots<br> ec2:DescribeInstanceStatus<br> Permission to EncryptionKeyCreation kms:CreateKey<br> kms:ListKeys<br> Permissions to EncryptionKeyManagement kms:TagResource<br> kms:GetKeyRotationStatus<br> kms:PutKeyPolicy<br> kms:GetKeyPolicy<br> kms:CreateAlias<br> kms:TagResource<br> kms:ListResourceTags<br> kms:GenerateDataKeyWithoutPlaintext<br> kms:DescribeKey<br> kms:RetireGrant<br> kms:CreateGrant<br> kms:ReEncryptFrom |
+| Defender CSPM <br><br> Defender for Storage | SensitiveDataDiscovery | Permissions to discover S3 buckets in the AWS account, permission for the Defender for Cloud scanner to access data in the S3 buckets.<br> S3 read only; KMS decrypt kms:Decrypt |
+| CIEM | DefenderForCloud-Ciem <br> DefenderForCloud-OidcCiem | Permissions for Ciem Discovery<br> sts:AssumeRole<br> sts:AssumeRoleWithSAML<br> sts:GetAccessKeyInfo<br> sts:GetCallerIdentity<br> sts:GetFederationToken<br> sts:GetServiceBearerToken<br> sts:GetSessionToken<br> sts:TagSession |
+| Defender for Servers | DefenderForCloud-DefenderForServers | Permissions to configure JIT Network Access: <br>ec2:RevokeSecurityGroupIngress<br> ec2:AuthorizeSecurityGroupIngress<br> ec2:DescribeInstances<br> ec2:DescribeSecurityGroupRules<br> ec2:DescribeVpcs<br> ec2:CreateSecurityGroup<br> ec2:DeleteSecurityGroup<br> ec2:ModifyNetworkInterfaceAttribute<br> ec2:ModifySecurityGroupRules<br> ec2:ModifyInstanceAttribute<br> ec2:DescribeSubnets<br> ec2:DescribeSecurityGroups |
+| Defender for Containers | DefenderForCloud-Containers-K8s | Permissions to List EKS clusters and Collect Data from EKS clusters. <br>eks:UpdateClusterConfig<br> eks:DescribeCluster |
+| Defender for Containers | DefenderForCloud-DataCollection | Permissions to CloudWatch Log Group created by Defender for Cloud <br>ΓÇ£logs:PutSubscriptionFilter<br> logs:DescribeSubscriptionFilters<br> logs:DescribeLogGroups autp logs:PutRetentionPolicy<br><br> Permissions to use SQS queue created by Defender for Cloud <br>sqs:ReceiveMessage<br> sqs:DeleteMessage |
+| Defender for Containers | DefenderForCloud-Containers-K8s-cloudwatch-to-kinesis | Permissions to access Kinesis Data Firehose delivery stream created by Defender for Cloud<br> firehose:* |
+| Defender for Containers | DefenderForCloud-Containers-K8s-kinesis-to-s3 | Permissions to access S3 bucket created by Defender for Cloud <br> s3:GetObject<br> s3:GetBucketLocation<br> s3:AbortMultipartUpload<br> s3:GetBucketLocation<br> s3:GetObject<br> s3:ListBucket<br> s3:ListBucketMultipartUploads<br> s3:PutObject |
| Defender for Containers <br><br> Defender CSPM | MDCContainersAgentlessDiscoveryK8sRole | Permissions to Collecting Data from EKS clusters. Updating EKS clusters to support IP restriction and create iamidentitymapping for EKS clusters<br> “eks:DescribeCluster” <br>“eks:UpdateClusterConfig*” | | Defender for Containers <br><br> Defender CSPM | MDCContainersImageAssessmentRole | Permissions to Scan images from ECR and ECR Public. <br>AmazonEC2ContainerRegistryReadOnly <br>AmazonElasticContainerRegistryPublicReadOnly <br>AmazonEC2ContainerRegistryPowerUser  <br> AmazonElasticContainerRegistryPublicPowerUser |
-| Defender for Servers | DefenderForCloud-ArcAutoProvisioning | Permissions to install Azure Arc on all EC2 instances using SSM <br>"ssm:CancelCommand"<br> "ssm:DescribeInstanceInformation"<br> "ssm:GetCommandInvocation"<br> "ssm:UpdateServiceSetting"<br> "ssm:GetServiceSetting"<br> "ssm:GetAutomationExecution"<br> "ec2:DescribeIamInstanceProfileAssociations"<br> "ec2:DisassociateIamInstanceProfile"<br> "ec2:DescribeInstances"<br> "ssm:StartAutomationExecution"<br> "iam:GetInstanceProfile"<br> "iam:ListInstanceProfilesForRole"<br> "ssm:GetAutomationExecution"<br> "ec2:DescribeIamInstanceProfileAssociations"<br> "ec2:DisassociateIamInstanceProfile"<br> "ec2:DescribeInstances"<br> "ssm:StartAutomationExecution"<br> "iam:GetInstanceProfile"<br> "iam:ListInstanceProfilesForRole" |
-| Defender CSPM | DefenderForCloud-DataSecurityPostureDB | Permission to Discover RDS instances in AWS account, create RDS instance snapshot, <br> - List all RDS DBs/clusters <br> - List all DB/Cluster snapshots <br> - Copy all DB/cluster snapshots <br> - Delete/update DB/cluster snapshot with prefixΓÇ»*defenderfordatabases* <br> - List all KMS keys <br> - Use all KMS keys only for RDS on source account <br> - List KMS keys with tag prefixΓÇ»*DefenderForDatabases* <br> - Create alias for KMS keys <br><br> Permissions required to discover, RDS instances<br> "rds:DescribeDBInstances"<br> "rds:DescribeDBClusters"<br> "rds:DescribeDBClusterSnapshots"<br> "rds:DescribeDBSnapshots"<br> "rds:CopyDBSnapshot"<br> "rds:CopyDBClusterSnapshot"<br> "rds:DeleteDBSnapshot"<br> "rds:DeleteDBClusterSnapshot"<br> "rds:ModifyDBSnapshotAttribute"<br> "rds:ModifyDBClusterSnapshotAttribute" "rds:DescribeDBClusterParameters"<br> "rds:DescribeDBParameters"<br> "rds:DescribeOptionGroups"<br> "kms:CreateGrant"<br> "kms:ListAliases"<br> "kms:CreateKey"<br> "kms:TagResource"<br> "kms:ListGrants"<br> "kms:DescribeKey"<br> "kms:PutKeyPolicy"<br> "kms:Encrypt"<br> "kms:CreateGrant"<br> "kms:EnableKey"<br> "kms:CancelKeyDeletion"<br> "kms:DisableKey"<br> "kms:ScheduleKeyDeletion"<br> "kms:UpdateAlias"<br> "kms:UpdateKeyDescription" |
+| Defender for Servers | DefenderForCloud-ArcAutoProvisioning | Permissions to install Azure Arc on all EC2 instances using SSM <br>ssm:CancelCommand<br> ssm:DescribeInstanceInformation<br> ssm:GetCommandInvocation<br> ssm:UpdateServiceSetting<br> ssm:GetServiceSetting<br> ssm:GetAutomationExecution<br> ec2:DescribeIamInstanceProfileAssociations<br> ec2:DisassociateIamInstanceProfile<br> ec2:DescribeInstances<br> ssm:StartAutomationExecution<br> iam:GetInstanceProfile<br> iam:ListInstanceProfilesForRole<br> ssm:GetAutomationExecution<br> ec2:DescribeIamInstanceProfileAssociations<br> ec2:DisassociateIamInstanceProfile<br> ec2:DescribeInstances<br> ssm:StartAutomationExecution<br> iam:GetInstanceProfile<br> iam:ListInstanceProfilesForRole |
+| Defender CSPM | DefenderForCloud-DataSecurityPostureDB | Permission to Discover RDS instances in AWS account, create RDS instance snapshot, <br> - List all RDS DBs/clusters <br> - List all DB/Cluster snapshots <br> - Copy all DB/cluster snapshots <br> - Delete/update DB/cluster snapshot with prefixΓÇ»*defenderfordatabases* <br> - List all KMS keys <br> - Use all KMS keys only for RDS on source account <br> - List KMS keys with tag prefixΓÇ»*DefenderForDatabases* <br> - Create alias for KMS keys <br><br> Permissions required to discover, RDS instances<br> rds:DescribeDBInstances<br> rds:DescribeDBClusters<br> rds:DescribeDBClusterSnapshots<br> rds:DescribeDBSnapshots<br> rds:CopyDBSnapshot<br> rds:CopyDBClusterSnapshot<br> rds:DeleteDBSnapshot<br> rds:DeleteDBClusterSnapshot<br> rds:ModifyDBSnapshotAttribute<br> rds:ModifyDBClusterSnapshotAttribute rds:DescribeDBClusterParameters<br> rds:DescribeDBParameters<br> rds:DescribeOptionGroups<br> kms:CreateGrant<br> kms:ListAliases<br> kms:CreateKey<br> kms:TagResource<br> kms:ListGrants<br> kms:DescribeKey<br> kms:PutKeyPolicy<br> kms:Encrypt<br> kms:CreateGrant<br> kms:EnableKey<br> kms:CancelKeyDeletion<br> kms:DisableKey<br> kms:ScheduleKeyDeletion<br> kms:UpdateAlias<br> kms:UpdateKeyDescription |
## Permissions on GCP
When you onboard an Google Cloud Projects (GCP) connector, Defender for Cloud wi
| Defender for Cloud plan | Role created | Permission assigned on AWS account | |--|--|--|
-| Defender CSPM | MDCCspmCustomRole | To discover GCP resources <br> resourcemanager.folders.getIamPolicy<br> resourcemanager.folders.list<br> resourcemanager.organizations.get<br> resourcemanager.organizations.getIamPolicy<br> storage.buckets.getIamPolicy resourcemanager.folders.get<br> resourcemanager.projects.get<br> resourcemanager.projects.list<br> serviceusage.services.enable<br> iam.roles.create<br> iam.roles.list<br> iam.serviceAccounts.actAs<br> compute.projects.get<br> compute.projects.setCommonInstanceMetadata" |
-| Defender for Servers | microsoft-defender-for-servers <br> azure-arc-for-servers-onboard | Read-only access to get and list Compute Engine <br> resources roles/compute.viewer<br> roles/iam.serviceAccountTokenCreator<br> roles/osconfig.osPolicyAssignmentAdmin<br> roles/osconfig.osPolicyAssignmentReportViewer |
-| Defender for Database | defender-for-databases-arc-ap | Permissions to Defender for databases ARC auto provisioning <br> roles/compute.viewer <br> roles/iam.workloadIdentityUser <br> roles/iam.serviceAccountTokenCreator<br> roles/osconfig.osPolicyAssignmentAdmin<br> roles/osconfig.osPolicyAssignmentReportViewer |
+| Defender CSPM | MDCCspmCustomRole | These permissions allow the CSPM role to discover and scan resources within the organization:<br><br>Allows the role to view and organizations, projects and folders:<br> resourcemanager.folders.get<br> resourcemanager.folders.list resourcemanager.folders.getIamPolicy<br> resourcemanager.organizations.get<br> resourcemanager.organizations.getIamPolicy<br> storage.buckets.getIamPolicy<br><br>Allows the auto-provisioning process of new projects and removal of deleted projects:<br> resourcemanager.projects.get<br> resourcemanager.projects.list<br><br>Allows the role to enable Google Cloud services used for the discovery of resources:<br> serviceusage.services.enable<br><br>Used to create and list IAM roles:<br> iam.roles.create<br> iam.roles.list<br><br>Allows the role to act as a service account and gain permission to resources:<br>iam.serviceAccounts.actAs<br><br>Allows the role to view project details and set common instance metadata:<br>compute.projects.get<br> compute.projects.setCommonInstanceMetadata |
+| Defender for Servers | microsoft-defender-for-servers <br> azure-arc-for-servers-onboard | Read-only access to get and list Compute Engine <br> resources compute.viewer<br> iam.serviceAccountTokenCreator<br> osconfig.osPolicyAssignmentAdmin<br> osconfig.osPolicyAssignmentReportViewer |
+| Defender for Database | defender-for-databases-arc-ap | Permissions to Defender for databases ARC auto provisioning <br> compute.viewer <br> iam.workloadIdentityUser <br> iam.serviceAccountTokenCreator<br> osconfig.osPolicyAssignmentAdmin<br> osconfig.osPolicyAssignmentReportViewer |
| Defender CSPM <br><br> Defender for Storage | data-security-posture-storage | Permission for the Defender for Cloud scanner to discover GCP storage buckets, to access data in the GCP storage buckets <br> storage.objects.list<br> storage.objects.get<br> storage.buckets.get | | Defender CSPM <br><br> Defender for Storage | data-security-posture-storage | Permission for the Defender for Cloud scanner to discover GCP storage buckets, to access data in the GCP storage buckets<br> storage.objects.list<br> storage.objects.get<br> storage.buckets.get | | Defender CSPM | microsoft-defender-ciem | Permissions to get details about the organization resource.<br> resourcemanager.folders.getIamPolicy<br> resourcemanager.folders.list<br> resourcemanager.organizations.get<br> resourcemanager.organizations.getIamPolicy<br> storage.buckets.getIamPolicy | | Defender CSPM <br><br> Defender for Servers | MDCAgentlessScanningRole | Permissions for agentless disk scanning:<br> compute.disks.createSnapshot<br> compute.instances.get | | Defender CSPM <br><br> Defender for servers | cloudkms.cryptoKeyEncrypterDecrypter | Permissions to an existing GCP KMS role are granted to support scanning disks that are encrypted with CMEK |
-| Defender CSPM <br><br> Defender for Containers | mdc-containers-artifact-assess | Permission to Scan images from GAR and GCR. <br> Roles/artifactregistry.readerΓÇ»<br> Roles/storage.objectViewer |
-| Defender for Containers | mdc-containers-k8s-operator | Permissions to Collect Data from GKE clusters. Update GKE clusters to support IP restriction. <br> Roles/container.viewerΓÇ»<br> MDCGkeClusterWriteRole container.clusters.update* |
+| Defender CSPM <br><br> Defender for Containers | mdc-containers-artifact-assess | Permission to Scan images from GAR and GCR. <br> artifactregistry.readerΓÇ»<br> storage.objectViewer |
+| Defender for Containers | mdc-containers-k8s-operator | Permissions to Collect Data from GKE clusters. Update GKE clusters to support IP restriction. <br> container.viewerΓÇ»<br> MDCGkeClusterWriteRole container.clusters.update* |
| Defender for Containers | microsoft-defender-containers | Permissions to create and manage log sink to route logs to a Cloud Pub/Sub topic. <br> logging.sinks.list<br> logging.sinks.get<br> logging.sinks.create<br> logging.sinks.update<br> logging.sinks.delete<br> resourcemanager.projects.getIamPolicy<br> resourcemanager.organizations.getIamPolicy<br> iam.serviceAccounts.get <br>iam.workloadIdentityPoolProviders.get | | Defender for Containers | ms-defender-containers-stream | Permissions to allow logging to send logs to pub sub:<br> pubsub.subscriptions.consume <br> pubsub.subscriptions.get |
defender-for-cloud Quickstart Onboard Aws https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/quickstart-onboard-aws.md
To complete the procedures in this article, you need:
- Contributor level permission for the relevant Azure subscription. -- An Entra ID account that has an Application Administrator or Cloud Application Administrator directory role for your tenant (or equivalent administrator rights to create app registrations).- > [!NOTE] > The AWS connector is not available on the national government clouds (Azure Government, Microsoft Azure operated by 21Vianet).
If you choose the Microsoft Defender CSPM plan, you need:
- You must [enable Microsoft Defender for Cloud](get-started.md#enable-defender-for-cloud-on-your-azure-subscription) on your Azure subscription. - Connect your [non-Azure machines](quickstart-onboard-machines.md), [AWS accounts](quickstart-onboard-aws.md). - In order to gain access to all of the features available from the CSPM plan, the plan must be enabled by the **Subscription Owner**.
+- To enable CIEM (Cloud Infrastructure Entitlement Management) capabilities, the Entra ID account used for the onboarding process must have either the Application Administrator or Cloud Application Administrator directory role for your tenant (or equivalent administrator rights to create app registrations). This requirement is only necessary during the onboarding process.
Learn more about how to [enable Defender CSPM](tutorial-enable-cspm-plan.md).
defender-for-cloud Quickstart Onboard Gcp https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/quickstart-onboard-gcp.md
To complete the procedures in this article, you need:
- Contributor level permission for the relevant Azure subscription. -- An Entra ID account that has an Application Administrator or Cloud Application Administrator directory role for your tenant (or equivalent administrator rights to create app registrations).- You can learn more about Defender for Cloud pricing on [the pricing page](https://azure.microsoft.com/pricing/details/defender-for-cloud/). When you're connecting GCP projects to specific Azure subscriptions, consider the [Google Cloud resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy#resource-hierarchy-detail) and these guidelines:
If you choose the Microsoft Defender CSPM plan, you need:
- A Microsoft Azure subscription. If you don't have an Azure subscription, you can [sign up for a free subscription](https://azure.microsoft.com/pricing/free-trial/). - You must [enable Microsoft Defender for Cloud](get-started.md#enable-defender-for-cloud-on-your-azure-subscription) on your Azure subscription. - In order to gain access to all of the features available from the CSPM plan, the plan must be enabled by the **Subscription Owner**.
+- To enable CIEM (Cloud Infrastructure Entitlement Management) capabilities, the Entra ID account used for the onboarding process must have either the Application Administrator or Cloud Application Administrator directory role for your tenant (or equivalent administrator rights to create app registrations). This requirement is only necessary during the onboarding process.
Learn more about how to [enable Defender CSPM](tutorial-enable-cspm-plan.md).
defender-for-cloud Sql Azure Vulnerability Assessment Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-cloud/sql-azure-vulnerability-assessment-overview.md
Configuration modes benefits and limitations comparison:
| Supported Policy Scope | ΓÇó Subscription<br>ΓÇó Server | ΓÇó Subscription<br>ΓÇó Server<br>ΓÇó Database | | Dependencies | None | Azure storage account | | Recurring scan | ΓÇó Always active<br>ΓÇó Scan scheduling is internal and not configurable | ΓÇó Configurable on/off<br>Scan scheduling is internal and not configurable |
+| System databases scan | ΓÇó Scheduled scan<br>ΓÇó Manual scan | ΓÇó Scheduled scan only if there's one user database or more<br>ΓÇó Manual scan every time a user database is scanned |
| Supported Rules | All vulnerability assessment rules for the supported resource type. | All vulnerability assessment rules for the supported resource type. | | Baseline Settings | ΓÇó Batch ΓÇô several rules in one command<br>ΓÇó Set by latest scan results<br>ΓÇó Single rule | ΓÇó Single rule | | Apply baseline | Will take effect **without** rescanning the database | Will take effect **only after** rescanning the database |
defender-for-iot Dell Edge 3200 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/defender-for-iot/organizations/appliance-catalog/dell-edge-3200.md
+
+ Title: Dell Edge Gateway 3200 for operational technology (OT) monitoring - Microsoft Defender for IoT
+description: Learn about the Dell Edge Gateway 3200 appliance's configuration when used for OT monitoring with Microsoft Defender for IoT in enterprise deployments.
Last updated : 07/14/2024+++
+# Dell Edge Gateway 3200
+
+This article describes the Dell Edge Gateway 3200 appliance for operational technology (OT) sensors monitoring production lines. The Dell Edge Gateway 3200 is also available for the on-premises management console.
+
+|Appliance characteristic | Description|
+|||
+|**Hardware profile** | L100|
+|**Performance** | Max bandwidth: 10 Mbp/s<br>Max devices: 100 |
+|**Physical Specifications** | Mounting: 1U with rail kit<br>Ports: 6x RJ45 1 GbE|
+|**Status** | Supported, available as a preconfigured appliance|
+
+The following image shows a view of the Dell Edge Gateway 3200 front panel:
++
+The following image shows a view of the Dell Edge Gateway 3200 back panel:
++
+## Specifications
+
+|Component| Technical specifications|
+|-|-|
+|Chassis| 1U rack server |
+|Dimensions| Height: 60 mm <br>Width: 162 cm<br>Depth: 108 mm |
+|Processor| Intel Atom x6425RE |
+|Memory|16 GB |
+|Storage| 500 GB Hard Drive |
+|Network controller| Ports: 2* 1 GbE RJ45 |
+|Management|iDRAC Group Manager, Disabled |
+|Rack support| Wall mount/ DIN rail support |
+
+## Dell Edge Gateway 3200 - Bill of Materials
+
+|type|Description|
+|-|-|
+| Processor | Intel Atom® x6425RE |
+|TDP | 12 W |
+|# of Cores | 4 |
+|Base Freq. | 1.9 Ghz |
+|Max. Turbo Freq.| - |
+|PCH | Elkhart Lake SoC |
+|Memory | 16 GB |
+|Display | 2x DP++ |
+|Ethernet | 1x 2.5 GbE, 1x GbE (1 GHz) |
+|Serial ports| COM1/2: RS-232/422/485 |
+|DI/O | 6-ch DI and 6-ch DO |
+|USB | 4x external USB 3.1 Gen1 |
+|Audio | Line-out, mic-in |
+|Mini PCIe | 1x full size 3050 |
+|M.2 | Socket 1: for module with A/A+E key<br>Socket 2: for module with B/B+M key <br>Socket 3: for module with M key |
+|Sensor Suite | Accelerometer, humidity, pressure, temperature |
+|Wafer | 1x (signal: 2x I2C, 1x USB 2.0) |
+|USIM | 2x nanoSIM slot |
+|TPM | TPM 2.0 |
+|Disk| 1x M.2 SSD on M.2 Socket 3 |
+|Dimensions | 162 mm (W) x 108 mm (D) x 60 mm (H) |
+|Weight | Net: 1.2 kg; gross: 1.7 kg  |
+|Mounting | Wall mount / DIN rail supported |
+|DC Input | 9ΓÇô36 V (┬▒10% tolerance) |
+|AC Input | Optional: 120 W, 60 W (for PoE) AC-to-DC adapter |
+|Operating temperature | ΓÇô20┬░C to 60┬░C (with airflow 0.6 m/s) |
+|Storage temperature | ΓÇô40┬░C to 85┬░C (excluding storage devices) |
+|Altitude | Operational (maximum, unpressurized): -15.20 m to 5,000 m<br> Note: The maximum temperature is derated 1C/305m above sea level altitude |
+|Humidity| ~95% at 40C (non-condensing) |
+|Vibration| MIL-STD-810G METHOD 514.6 category 4 - common carrier (US highway truck vibration exposure) |
+|Shock| 1. IEC 60068-2-27, half-sine pulse test parameters<br>2. 20G, MIL-STD-810G 516.6 Table 516.6-II, sawtooth pulse test parameters |
+|IP rating | IP40 |
+|EMC | CE, FCC, and EN61000-6-4/-6-2 |
+| Safety | UL, CB by UL |
+
+>[!Important]
+>
+>When ordering hardware from a vendor, check that the bill of materials is unchanged from the details listed here, as vendors might change parts which can affect sensor performance.
+
+## Install Defender for IoT software on the Dell Edge Gateway 3200
+
+This procedure describes how to install Defender for IoT software on the Dell Edge Gateway 3200.
+
+The installation process takes about 20 minutes. During the installation, the system restarts several times.
+
+To install Defender for IoT software:
+
+1. Connect the screen and keyboard to the appliance, and then connect to the CLI.
+
+1. Connect an external CD or disk-on-key that contains the software you downloaded from the Azure portal.
+
+1. Start the appliance.
+
+1. Continue with the generic procedure for installing Defender for IoT software. For more information, see [Defender for IoT software installation](../how-to-install-software.md).
+
+## Next steps
+
+Continue learning about the system requirements for physical or virtual appliances. For more information, see [Which appliances do I need?](../ot-appliance-sizing.md).
+
+Then, use any of the following procedures to continue:
+
+- [Download software for an OT sensor](../ot-deploy/install-software-ot-sensor.md#download-software-files-from-the-azure-portal)
+- [Download software files for an on-premises management console](../legacy-central-management/install-software-on-premises-management-console.md#download-software-files-from-the-azure-portal)
devtest-labs Personal Data Delete Export https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/devtest-labs/personal-data-delete-export.md
DevTest Labs collects two main pieces of personal data from the user. They are:
### User email address DevTest Labs uses the user email address to send auto shutdown email notifications to lab users. The email notifies users of their machine being shut down. The users can either postpone or skip the shutdown if they wish to do so. You configure the email address at the lab level or at the VM level.
-**Setting email at the lab:**
-
-![Setting email at the lab level](./media/personal-data-delete-export/lab-user-email.png)
-
-**Setting email at the VM:**
-
-![Setting email at the VM level](./media/personal-data-delete-export/vm-user-email.png)
-
-### User object ID
-DevTest Labs uses the user object ID to show month-over-month cost trends and cost by resource information to lab admins. It allows them to track costs and manage thresholds for their Lab.
-
-**Estimated cost trend for the current calendar month:**
-![Estimated cost trend for the current calendar month](./media/personal-data-delete-export/estimated-cost-trend-per-month.png)
-
-**Estimated month-to-date cost by resource:**
-![Estimated month-to-date cost by resource](./media/personal-data-delete-export/estimated-month-to-date-cost-by-resource.png)
-- ## Why do we need this personal data?
-The DevTest Labs service uses the personal data for operational purposes. This data is critical for the service to deliver key features. If you set a retention policy on the user email address, lab users do not receive timely auto shutdown email notifications after their email address is deleted from our system. Similarly, the lab admin can't view month-over-month cost trends and cost by resource for machines in their labs if the user object IDs are deleted based on a retention policy. Therefore, this data needs to be retained for as long as the user's resource is active in the Lab.
+The DevTest Labs service uses the personal data for operational purposes. This data is critical for the service to deliver key features. If you set a retention policy on the user email address, lab users do not receive timely auto shutdown email notifications after their email address is deleted from our system. Therefore, this data needs to be retained for as long as the user's resource is active in the Lab.
-## How can I have the system to forget my personal data?
-As a lab user, if you like to have this personal data deleted, you can do so by deleting the corresponding resource in the Lab. The DevTest Labs service anonymizes the deleted personal data 30 days after it's deleted by the user.
+## How can I have the system forget my personal data?
+As a lab user, you can delete your personal by deleting the corresponding resource in the Lab. The DevTest Labs service anonymizes the deleted personal data 30 days after it's deleted by the user.
-For example, If you delete your VM, or removed your email address, the DevTest Labs service anonymizes this data 30 days after the resource is deleted. The 30-day retention policy after deletion is to make sure that we provide an accurate month-over-month cost projection to the lab admin.
+For example, if you delete your VM, or remove your email address, the DevTest Labs service anonymizes this data 30 days after the resource is deleted. The 30-day retention policy after deletion ensures that DevTest Labs provides an accurate month-over-month cost projection to the lab admin.
## How can I request an export on my personal data?
-You can export personal and lab usage data by using the Azure portal or PowerShell. The data is exported as two different CSV files:
--- **disks.csv** - contains information about the disks being used by the different VMs-- **virtualmachines.csv** - contains information about the VMs in the lab.-
-### Azure portal
-As a lab user, you can request an export on the personal data that the DevTest Labs service stores. To request for an export, navigate to the **Personal data** option on the **Overview** page of your lab. Select the **Request export** button kicks off the creation of a downloadable excel file in your Lab admin's storage account. You can then contact your lab admin to view this data.
-
-1. Select **Personal data** on the left menu.
-
- ![Personal data page](./media/personal-data-delete-export/personal-data-page.png)
-2. Select the **resource group** that contains the lab.
-
- ![Select resource group](./media/personal-data-delete-export/select-resource-group.png)
-3. Select the **storage account** in the resource group.
-4. On the **Storage account** page, select **Blobs**.
-
- ![Select Blobs tile](./media/personal-data-delete-export/select-blobs-tile.png)
-5. Select the container named **labresourceusage** in the list of containers.
-
- ![Select blob container](./media/personal-data-delete-export/select-blob-container.png)
-6. Select the **folder** named after your lab. You find **csv** files for **disks** and **virtual machines** in your lab in this folder. You can download these csv files, filter the content for the lab user requesting an access, and share it with them.
-
- ![Download CSV file](./media/personal-data-delete-export/download-csv-file.png)
+You can export personal and lab usage data by using Azure PowerShell. DevTest Labs exports the data as a csv file with the date and time of the export requested in the name.
### Azure PowerShell ```powershell Param (
- [Parameter (Mandatory=$true, HelpMessage="The storage account name where to store usage data")]
- [string] $storageAccountName,
-
- [Parameter (Mandatory=$true, HelpMessage="The storage account key")]
- [string] $storageKey,
+ [Parameter (Mandatory=$true, HelpMessage="The resource group name of the storage account")]
+[string] $resourceGroupName,
+
+ [Parameter (Mandatory=$true, HelpMessage="The subscription id of the storage account and DTL")]
+[string] $subscriptionId,
- [Parameter (Mandatory=$true, HelpMessage="The DevTest Lab name to get usage data from")]
- [string] $labName,
+ [Parameter (Mandatory=$true, HelpMessage="The storage account name")]
+[string] $storageAccountName,
- [Parameter (Mandatory=$true, HelpMessage="The DevTest Lab subscription")]
- [string] $labSubscription
- )
+ [Parameter (Mandatory=$true, HelpMessage="Expire time of the SAS Token")]
+[string] $expiryTime,
-#Login
-Login-AzureRmAccount
+ [Parameter (Mandatory=$true, HelpMessage="Date to pull data from")][string] $startTime,
-# Set the subscription for the lab
-Get-AzureRmSubscription -SubscriptionId $labSubscription | Select-AzureRmSubscription
+ [Parameter (Mandatory=$true, HelpMessage="Name of the lab to export")]
+[string] $labName,
-# DTL will create this container in the storage when invoking the action, cannot be changed currently
-$containerName = "labresourceusage"
+ [Parameter (Mandatory=$true, HelpMessage="The desired SKU")]
+[string] $desiredSKU,
-# Get the storage context
-$Ctx = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageKey
-$SasToken = New-AzureStorageAccountSASToken -Service Blob, File -ResourceType Container, Service, Object -Permission rwdlacup -Protocol HttpsOnly -Context $Ctx
+ [Parameter (Mandatory=$true, HelpMessage="Protocol for SAS token generation")]
+[string] $protocol,
-# Generate the storage blob uri
-$blobUri = $Ctx.BlobEndPoint + $SasToken
+ [Parameter (Mandatory=$true, HelpMessage="Permissions given for SAS token")]
+[string] $permissions
-# blobStorageAbsoluteSasUri and usageStartDate are required
+# Log in
+Connect-AzAccount -UseDeviceAuthentication
+
+# Set your subscription
+Set-AzContext -SubscriptionId $subscriptionId
+
+
+# Create a resource group and storage account
+ New-AzStorageAccount -ResourceGroupName $resourceGroupName `
+ -Name $storageAccountName `
+ -Location $location `
+ -SkuName $desiredSKU
+
+# Get storage account context
+$storageAccountContext = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -AccountName $storageAccountName
+$storageAccountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName
+
+$Ctx = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKeys[0].Value
+
+# Create blob container
+$containerName = "exportlabresources"
+New-AzStorageContainer -Name $containerName `
+ -Context $Ctx `
+ -Permission Off
+
+# Get SAS token
+$sasToken = New-AzStorageContainerSASToken `
+-Context $Ctx `
+-Name $containerName `
+-StartTime (Get-Date) `
+-ExpiryTime $expiryTime `
+-Permission $permissions `
+-Protocol $protocol
+
+# Make blob endpoint
+$blobEndpointWithSas = $storageAccountContext.Context.BlobEndPoint + $containerName+ "?" + $sasToken
+
+# Invoke Export Job
$actionParameters = @{
- 'blobStorageAbsoluteSasUri' = $blobUri
+ 'blobStorageAbsoluteSasUri' = $blobEndpointWithSas
}
-$startdate = (Get-Date).AddDays(-7)
- $actionParameters.Add('usageStartDate', $startdate.Date.ToString())-
-# Get the lab resource group
-$resourceGroupName = (Find-AzureRmResource -ResourceType 'Microsoft.DevTestLab/labs' | Where-Object { $_.Name -eq $labName}).ResourceGroupName
-
-# Create the lab resource id
-$resourceId = "/subscriptions/" + $labSubscription + "/resourceGroups/" + $resourceGroupName + "/providers/Microsoft.DevTestLab/labs/" + $labName + "/"
-
-# !!!!!!! this is the new resource action to get the usage data.
-$result = Invoke-AzureRmResourceAction -Action 'exportLabResourceUsage' -ResourceId $resourceId -Parameters $actionParameters -Force
-# Finish up cleanly
-if ($result.Status -eq "Succeeded") {
- Write-Output "Telemetry successfully downloaded for " $labName
- return 0
-}
-else
-{
- Write-Output "Failed to download lab: " + $labName
- Write-Error $result.toString()
- return -1
-}
+$resourceId = "/subscriptions/" + $subscriptionId + "/resourceGroups/" + $resourceGroupName + "/providers/Microsoft.DevTestLab/labs/" + $labName + "/"
+
+$result = Invoke-AzureRmResourceAction -Action 'ExportResourceUsage' -ResourceId $resourceId -Parameters $actionParameters -Force
+ ```
-The key components in the above sample are:
+The key components in the previous sample are:
- The Invoke-AzureRmResourceAction command.
-
+ ```
- Invoke-AzureRmResourceAction -Action 'exportLabResourceUsage' -ResourceId $resourceId -Parameters $actionParameters -Force
+ Invoke-AzureRmResourceAction -Action 'ExportResourceUsage' -ResourceId $resourceId -Parameters $actionParameters -Force
``` - Two action parameters
- - **blobStorageAbsoluteSasUri** - The storage account URI with the Shared Access Signature (SAS) token. In the PowerShell script, this value could be passed in instead of the storage key.
- - **usageStartDate** - The beginning date to pull data, with the end date being the current date on which the action is executed. The granularity is at the day level, so even if you add time information, it will be ignored.
-
-### Exported data - a closer look
-Now letΓÇÖs take a closer look at the exported data. As mentioned earlier, once the data are successfully exported, there will be two CSV files.
-
-The **virtualmachines.csv** contains the following data columns:
-
-| Column name | Description |
-| -- | -- |
-| SubscriptionId | The subscription identifier that the lab exists in. |
-| LabUId | Unique GUID identifier for the lab. |
-| LabName | Name of the lab. |
-| LabResourceId | Fully qualified lab resource ID. |
-| ResourceGroupName | Name of the resource group that contains the VM |
-| ResourceId | Fully qualified resource ID for the VM. |
-| ResourceUId | GUID for the VM |
-| Name | Virtual machine name. |
-| CreatedTime | The date-time at which the VM was created. |
-| DeletedDate | The date-time at which the VM was deleted. If it's empty, deletion hasn't occurred, yet. |
-| ResourceOwner | Owner of the VM. If the value is empty, then it's either a claimable VM or created by a service principal. |
-| PricingTier | Pricing tier of the VM |
-| ResourceStatus | Availability state of the VM. Active, if still exists or Inactive, if the VM has been deleted. |
-| ComputeResourceId | Fully qualified virtual machine compute resource identifier. |
-| Claimable | Set to true if the VM is a claimable VM |
-| EnvironmentId | The environment resource identifier within which the Virtual machine was created in. It's empty when the VM wasn't created as part of an environment resource. |
-| ExpirationDate | Expiration date for the VM. It's set to empty, if an expiration date hasn't been set.
-| GalleryImageReferenceVersion | Version of the VM base image. |
-| GalleryImageReferenceOffer | Offer of the VM base image. |
-| GalleryImageReferencePublisher | Publisher of the VM base image. |
-| GalleryImageReferenceSku | Sku of the VM base image |
-| GalleryImageReferenceOsType | OS type of the VM base image |
-| CustomImageId | Fully qualified ID of the VM base custom image. |
-
-The data columns contained in **disks.csv** are listed below:
-
-| Column name | Description |
-| -- | -- |
-| SubscriptionId | ID of the subscription that contains the lab |
-| LabUId | GUID for the lab |
-| LabName | Name of the lab |
-| LabResourceId | Fully qualified resource ID for the lab |
-| ResourceGroupName | Name of the resource group that contains the lab |
-| ResourceId | Fully qualified resource ID for the VM. |
-| ResourceUId | GUID for the VM |
- |Name | The name of the attached disk |
-| CreatedTime |The date and time at which the data disk was created. |
-| DeletedDate | The date and time at which the data disk was deleted. |
-| ResourceStatus | Status of the resource. Active, if the resource exists. Inactive, when deleted. |
-| DiskBlobName | Blob name for the data disk. |
-| DiskSizeGB | The size of the data disk. |
-| DiskType | Type of the data disk. 0 for Standard, 1 for Premium. |
-| LeasedByVmId | Resource ID of the VM to which the data disk has been attached. |
--
-> [!NOTE]
-> If you are dealing with multiple labs and want to get overall information, the two key columns are the **LabUID** and the **ResourceUId**, which are the unique ids across subscriptions.
-
-The exported data can be manipulated and visualized using tools, like SQL Server, Power BI, etc. This feature is especially useful when you want to report usage of your lab to your management team that may not be using the same Azure subscription as you do.
-
+ - **blobStorageAbsoluteSasUri** - The storage account URI with the Shared Access Signature (SAS) token. In the PowerShell script, this value could be passed in instead of the storage key.
+ - **usageStartDate** - The beginning date to pull data, with the end date being the current date on which the action is executed. The granularity is at the day level, so even if you add time information, it will be ignored.
+
## Next steps See the following article:
devtest-labs Report Usage Across Multiple Labs Subscriptions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/devtest-labs/report-usage-across-multiple-labs-subscriptions.md
Before you can export DevTest Labs resource usage, you have to set up an Azure S
> [!NOTE] > The date parameter doesn't include a time stamp so the data includes everything from midnight based on the time zone where the lab is located.
-Once the export is complete, there will be multiple CSV files in the blob storage with the different resource information.
-
-Currently there are two CSV files:
-
-* *virtualmachines.csv* - contains information about the virtual machines in the lab
-* *disks.csv* - contains information about the different disks in the lab
-
-These files are stored in the *labresourceusage* blob container. The files are under the lab name, lab unique ID, date executed, and either `full` or the start date of the export request. An example blob structure is:
-
-* `labresourceusage/labname/1111aaaa-bbbb-cccc-dddd-2222eeee/<End>DD26-MM6-2019YYYY/full/virtualmachines.csv`
-* `labresourceusage/labname/1111aaaa-bbbb-cccc-dddd-2222eeee/<End>DD-MM-YYYY/26-6-2019/20-6-2019<Start>DD-MM-YYYY/virtualmachines.csv`
+Once the export is complete, there will be a CSV file in the blob storage with the different resource information.
## Exporting usage for all labs
event-grid Monitor Virtual Machine Changes Logic App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-grid/monitor-virtual-machine-changes-logic-app.md
Title: Monitor virtual machines changes with Azure Event Grid description: Check for changes in virtual machines (VMs) by using Azure Event Grid and Azure Logic Apps.-+ ms.suite: integration
event-hubs Event Hubs Dotnet Standard Getstarted Send https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/event-hubs-dotnet-standard-getstarted-send.md
Title: 'Quickstart: Send or receive events using .NET' description: A quickstart that shows you how to create a .NET Core application that sends events to and receive events from Azure Event Hubs. - Last updated 04/05/2024 ms.devlang: csharp
event-hubs Exceptions Dotnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/exceptions-dotnet.md
Title: Azure Event Hubs - .NET exceptions description: This article provides a list of Azure Event Hubs .NET messaging exceptions and suggested actions. -- ms.devlang: csharp
event-hubs Monitor Event Hubs Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/monitor-event-hubs-reference.md
description: This article contains important reference material you need when yo
Last updated 06/20/2024 - # Azure Event Hubs monitoring data reference
event-hubs Monitor Event Hubs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/monitor-event-hubs.md
description: Learn how to use Azure Monitor to view, analyze, and create alerts
Last updated 06/20/2024 - # Monitor Azure Event Hubs
event-hubs Passwordless Migration Event Hubs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/passwordless-migration-event-hubs.md
description: Learn to migrate existing applications away from Shared Key authori
Last updated 06/12/2023-
event-hubs Security Controls Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/security-controls-policy.md
Last updated 02/06/2024
- # Azure Policy Regulatory Compliance controls for Azure Event Hubs
event-hubs Send And Receive Events Using Data Generator https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/send-and-receive-events-using-data-generator.md
Title: Send and receive events by using Data Generator
description: This quickstart shows you how to send and receive events to an Azure event hub by using Data Generator in the Azure portal. - Last updated 06/07/2024 #customer intent: As a developer, I want to send test events to an event hub in Azure Event Hubs and receive or view them.
event-hubs Transport Layer Security Audit Minimum Version https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/transport-layer-security-audit-minimum-version.md
description: Configure Azure Policy to audit compliance of Azure Event Hubs for using a minimum version of Transport Layer Security (TLS). - Last updated 04/25/2022
event-hubs Transport Layer Security Configure Client Version https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/transport-layer-security-configure-client-version.md
description: Configure a client application to communicate with Azure Event Hubs using a minimum version of Transport Layer Security (TLS). - Last updated 04/25/2022
event-hubs Transport Layer Security Configure Minimum Version https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/transport-layer-security-configure-minimum-version.md
Title: Configure the minimum TLS version for an Event Hubs namespace
description: Configure an Azure Event Hubs namespace to use a minimum version of Transport Layer Security (TLS). -- Last updated 07/06/2022
event-hubs Transport Layer Security Enforce Minimum Version https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/event-hubs/transport-layer-security-enforce-minimum-version.md
Title: Enforce a minimum required version of Transport Layer Security (TLS) for
description: Configure a service bus namespace to require a minimum version of Transport Layer Security (TLS) for clients making requests against Azure Event Hubs. - Last updated 06/24/2024
extended-zones Backup Virtual Machine https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/extended-zones/backup-virtual-machine.md
Title: "Tutorial: Back up an Azure Extended Zone VM"
description: Learn how to back up a virtual machine (VM) in Azure Extended Zones using the Azure portal. -+ Previously updated : 07/16/2024- Last updated : 08/02/2024 # Tutorial: Back up an Azure Extended Zone virtual machine
extended-zones Create Storage Account https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/extended-zones/create-storage-account.md
Title: Deploy a storage account in an Azure Extended Zone
description: Learn how to deploy a storage account in an Azure Extended Zone. -+ Previously updated : 07/16/2024- Last updated : 08/02/2024 # Create a storage account in an Azure Extended Zone
extended-zones Deploy Aks Cluster https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/extended-zones/deploy-aks-cluster.md
Title: Deploy an Azure Kubernetes Service (AKS) cluster in an Extended Zone
description: Learn how to deploy an Azure Kubernetes Service (AKS) cluster in an Azure Extended Zone using the Azure portal. -+ Previously updated : 07/16/2024- Last updated : 08/02/2024 # Deploy an Azure Kubernetes Service (AKS) cluster in an Azure Extended Zone
extended-zones Deploy Vm Arm Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/extended-zones/deploy-vm-arm-template.md
Title: "Deploy a virtual machine in an Extended Zone - ARM template"
description: Learn how to deploy a virtual machine in an Azure Extended Zone using an Azure Resource Manager template (ARM template). -+ Previously updated : 07/16/2024 Last updated : 08/02/2024 # Customer intent: As a cloud administrator, I want a quick method to deploy a virtual machine in an Azure Extended Zone.
extended-zones Deploy Vm Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/extended-zones/deploy-vm-portal.md
Title: "Quickstart: Deploy a virtual machine in an Extended Zone - Azure portal"
description: Learn how to deploy a virtual machine (VM) in an Azure Extended Zone using the Azure portal. -+ Previously updated : 07/16/2024- Last updated : 08/02/2024 # Quickstart: Deploy a virtual machine in an Extended Zone using the Azure portal
extended-zones Faq https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/extended-zones/faq.md
Title: Azure Extended Zones FAQ
description: This article provides answers to some of the frequently asked questions asked about Azure Extended Zones. -+ Previously updated : 07/10/2024- Last updated : 08/02/2024 # Azure Extended Zones frequently asked questions (FAQ)
extended-zones Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/extended-zones/overview.md
Title: What are Azure Extended Zones (Preview)?
description: Learn about Azure Extended Zones. -+ Previously updated : 06/26/2024- Last updated : 08/02/2024 # What are Azure Extended Zones (Preview)?
extended-zones Request Access https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/extended-zones/request-access.md
Title: Request access to Azure Extended Zones
description: Learn how to request and gain access to Azure Extended Zone using PowerShell or Azure CLI. -+ Previously updated : 07/15/2024- Last updated : 08/02/2024 # Request access to an Azure Extended Zone
extended-zones Request Quota Increase https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/extended-zones/request-quota-increase.md
Title: Request quota increase - Azure portal
description: Learn how to request a quota increase for your Azure Extended Zone resources using the Azure portal. -+ Previously updated : 06/26/2024- Last updated : 08/02/2024 # Request a quota increase in the Azure portal
key-vault Quick Create Node https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/certificates/quick-create-node.md
Title: Quickstart - Azure Key Vault certificate client library for JavaScript (version 4)
-description: Learn how to create, retrieve, and delete certificates from an Azure key vault using the JavaScript client library
+description: Learn how to create, retrieve, and delete certificates from an Azure key vault using the JavaScript client library with either JavaScript or TypeScript
Previously updated : 02/01/2023- Last updated : 07/30/2024+ ms.devlang: javascript-+
+zone_pivot_groups: programming-languages-set-functions-nodejs
# Quickstart: Azure Key Vault certificate client library for JavaScript
-Get started with the Azure Key Vault certificate client library for JavaScript. [Azure Key Vault](../general/overview.md) is a cloud service that provides a secure store for certificates. You can securely store keys, passwords, certificates, and other secrets. Azure key vaults may be created and managed through the Azure portal. In this quickstart, you learn how to create, retrieve, and delete certificates from an Azure key vault using the JavaScript client library
+Get started with the Azure Key Vault certificate client library for JavaScript. [Azure Key Vault](../general/overview.md) is a cloud service that provides a secure store for certificates. You can securely store keys, passwords, certificates, and other secrets. Azure key vaults may be created and managed through the Azure portal. In this quickstart, you learn how to create, retrieve, and delete certificates from an Azure key vault using the JavaScript client library.
Key Vault client library resources:
For more information about Key Vault and certificates, see:
- [Key Vault Overview](../general/overview.md) - [Certificates Overview](about-certificates.md) + ## Prerequisites - An Azure subscription - [create one for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
For more information about Key Vault and certificates, see:
- [Azure portal](../general/quick-create-portal.md) - [Azure PowerShell](../general/quick-create-powershell.md) +
+- An Azure subscription - [create one for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
+- Current [Node.js LTS](https://nodejs.org).
+- [TypeScript 5+](https://www.typescriptlang.org/download/)
+- [Azure CLI](/cli/azure/install-azure-cli)
+- An existing Key Vault - you can create one using:
+ - [Azure CLI](../general/quick-create-cli.md)
+ - [Azure portal](../general/quick-create-portal.md)
+ - [Azure PowerShell](../general/quick-create-powershell.md)
+ This quickstart assumes you're running [Azure CLI](/cli/azure/install-azure-cli). ## Sign in to Azure
Create a Node.js application that uses your key vault.
## Set environment variables
-This application is using key vault name as an environment variable called `KEY_VAULT_NAME`.
+This application is using key vault endpoint as an environment variable called `KEY_VAULT_URL`.
### [Windows](#tab/windows) ```cmd
-set KEY_VAULT_NAME=<your-key-vault-name>
+set KEY_VAULT_URL=<your-key-vault-endpoint>
```` ### [PowerShell](#tab/powershell) Windows PowerShell ```powershell
-$Env:KEY_VAULT_NAME="<your-key-vault-name>"
+$Env:KEY_VAULT_URL="<your-key-vault-endpoint>"
``` ### [macOS or Linux](#tab/linux) ```cmd
-export KEY_VAULT_NAME=<your-key-vault-name>
+export KEY_VAULT_URL=<your-key-vault-endpoint>
```
Application requests to most Azure services must be authorized. Using the [Defau
In this quickstart, `DefaultAzureCredential` authenticates to key vault using the credentials of the local development user logged into the Azure CLI. When the application is deployed to Azure, the same `DefaultAzureCredential` code can automatically discover and use a managed identity that is assigned to an App Service, Virtual Machine, or other services. For more information, see [Managed Identity Overview](/azure/active-directory/managed-identities-azure-resources/overview).
-In this code, the name of your key vault is used to create the key vault URI, in the format `https://<your-key-vault-name>.vault.azure.net`. For more information about authenticating to key vault, see [Developer's Guide](/azure/key-vault/general/developers-guide#authenticate-to-key-vault-in-code).
+In this code, the endpoint of your key vault is used to create the key vault client. The endpoint format looks like `https://<your-key-vault-name>.vault.azure.net` but may change for sovereign clouds. For more information about authenticating to key vault, see [Developer's Guide](/azure/key-vault/general/developers-guide#authenticate-to-key-vault-in-code).
## Code example
This code uses the following [Key Vault Certificate classes and methods](/javasc
### Set up the app framework
-1. Create new text file and paste the following code into the **index.js** file.
+
+* Create new text file and paste the following code into the **index.js** file.
```javascript const { CertificateClient, DefaultCertificatePolicy } = require("@azure/keyvault-certificates");
This code uses the following [Key Vault Certificate classes and methods](/javasc
// - AZURE_CLIENT_SECRET: The client secret for the registered application const credential = new DefaultAzureCredential();
- const keyVaultName = process.env["KEY_VAULT_NAME"];
- if(!keyVaultName) throw new Error("KEY_VAULT_NAME is empty");
- const url = "https://" + keyVaultName + ".vault.azure.net";
+ const keyVaultUrl = process.env["KEY_VAULT_URL"];
+ if(!keyVaultUrl) throw new Error("KEY_VAULT_URL is empty");
- const client = new CertificateClient(url, credential);
+ const client = new CertificateClient(keyVaultUrl, credential);
const uniqueString = new Date().getTime(); const certificateName = `cert${uniqueString}`;
This code uses the following [Key Vault Certificate classes and methods](/javasc
node index.js ``` +
+1. The create and get methods return a full JSON object for the certificate:
+
+ ```JSON
+ {
+ "keyId": undefined,
+ "secretId": undefined,
+ "name": "YOUR-CERTIFICATE-NAME",
+ "reuseKey": false,
+ "keyCurveName": undefined,
+ "exportable": true,
+ "issuerName": 'Self',
+ "certificateType": undefined,
+ "certificateTransparency": undefined
+ },
+ "properties": {
+ "createdOn": 2021-11-29T20:17:45.000Z,
+ "updatedOn": 2021-11-29T20:17:45.000Z,
+ "expiresOn": 2022-11-29T20:17:45.000Z,
+ "id": "https://YOUR-KEY-VAULT-NAME-ENDPOINT/certificates/YOUR-CERTIFICATE-NAME/YOUR-CERTIFICATE-VERSION",
+ "enabled": false,
+ "notBefore": 2021-11-29T20:07:45.000Z,
+ "recoveryLevel": "Recoverable+Purgeable",
+ "name": "YOUR-CERTIFICATE-NAME",
+ "vaultUrl": "https://YOUR-KEY-VAULT-NAME-ENDPOINT",
+ "version": "YOUR-CERTIFICATE-VERSION",
+ "tags": undefined,
+ "x509Thumbprint": undefined,
+ "recoverableDays": 90
+ }
+ }
+ ```
++
+* Create new text file and paste the following code into the **index.ts** file.
+
+ :::code language="typescript" source="~/azure-typescript-e2e-apps/quickstarts/key-vault/src/certificates.ts" :::
+
+## Run the sample application
+
+1. Build the TypeScript app:
+
+ ```terminal
+ tsc
+ ```
+
+1. Run the app:
+
+ ```terminal
+ node index.js
+ ```
+ 1. The create and get methods return a full JSON object for the certificate: ```JSON
This code uses the following [Key Vault Certificate classes and methods](/javasc
"createdOn": 2021-11-29T20:17:45.000Z, "updatedOn": 2021-11-29T20:17:45.000Z, "expiresOn": 2022-11-29T20:17:45.000Z,
- "id": "https://YOUR-KEY-VAULT-NAME.vault.azure.net/certificates/YOUR-CERTIFICATE-NAME/YOUR-CERTIFICATE-VERSION",
+ "id": "https://YOUR-KEY-VAULT-NAME-ENDPOINT/certificates/YOUR-CERTIFICATE-NAME/YOUR-CERTIFICATE-VERSION",
"enabled": false, "notBefore": 2021-11-29T20:07:45.000Z, "recoveryLevel": "Recoverable+Purgeable", "name": "YOUR-CERTIFICATE-NAME",
- "vaultUrl": "https://YOUR-KEY-VAULT-NAME.vault.azure.net",
+ "vaultUrl": "https://YOUR-KEY-VAULT-NAME-ENDPOINT",
"version": "YOUR-CERTIFICATE-VERSION", "tags": undefined, "x509Thumbprint": undefined,
This code uses the following [Key Vault Certificate classes and methods](/javasc
} ``` + ## Integrating with App Configuration
key-vault Quick Create Node https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/keys/quick-create-node.md
Title: Quickstart - Azure Key Vault key client library for JavaScript (version 4)
-description: Learn how to create, retrieve, and delete keys from an Azure key vault using the JavaScript client library
+description: Learn how to create, retrieve, and delete keys from an Azure key vault using the JavaScript client library with either JavaScript or TypeScript.
Previously updated : 02/02/2023 Last updated : 07/30/2024 ms.devlang: javascript-+
+zone_pivot_groups: programming-languages-set-functions-nodejs
# Quickstart: Azure Key Vault key client library for JavaScript
-Get started with the Azure Key Vault key client library for JavaScript. [Azure Key Vault](../general/overview.md) is a cloud service that provides a secure store for cryptographic keys. You can securely store keys, passwords, certificates, and other secrets. Azure key vaults may be created and managed through the Azure portal. In this quickstart, you learn how to create, retrieve, and delete keys from an Azure key vault using the JavaScript key client library
+
+Get started with the Azure Key Vault key client library for JavaScript. [Azure Key Vault](../general/overview.md) is a cloud service that provides a secure store for cryptographic keys. You can securely store keys, passwords, certificates, and other secrets. Azure key vaults may be created and managed through the Azure portal. In this quickstart, you learn how to create, retrieve, and delete keys from an Azure key vault using the JavaScript key client library.
Key Vault client library resources:
For more information about Key Vault and keys, see:
- [Key Vault Overview](../general/overview.md) - [Keys Overview](about-keys.md). + ## Prerequisites - An Azure subscription - [create one for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F). - Current [Node.js LTS](https://nodejs.org). - [Azure CLI](/cli/azure/install-azure-cli)
For more information about Key Vault and keys, see:
- [Azure portal](../general/quick-create-portal.md) - [Azure PowerShell](../general/quick-create-powershell.md)
+- An Azure subscription - [create one for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
+- Current [Node.js LTS](https://nodejs.org).
+- [TypeScript 5+](https://www.typescriptlang.org/download/)
+- [Azure CLI](/cli/azure/install-azure-cli).
+- An existing Key Vault - you can create one using:
+ - [Azure CLI](../general/quick-create-cli.md)
+ - [Azure portal](../general/quick-create-portal.md)
+ - [Azure PowerShell](../general/quick-create-powershell.md)
+ This quickstart assumes you're running [Azure CLI](/cli/azure/install-azure-cli). ## Sign in to Azure
Create a Node.js application that uses your key vault.
## Set environment variables
-This application is using key vault name as an environment variable called `KEY_VAULT_NAME`.
+This application is using key vault endpoint as an environment variable called `KEY_VAULT_URL`.
### [Windows](#tab/windows) ```cmd
-set KEY_VAULT_NAME=<your-key-vault-name>
+set KEY_VAULT_URL=<your-key-vault-endpoint>
```` ### [PowerShell](#tab/powershell) Windows PowerShell ```powershell
-$Env:KEY_VAULT_NAME="<your-key-vault-name>"
+$Env:KEY_VAULT_URL="<your-key-vault-endpoint>"
``` ### [macOS or Linux](#tab/linux) ```cmd
-export KEY_VAULT_NAME=<your-key-vault-name>
+export KEY_VAULT_URL=<your-key-vault-endpoint>
```
Application requests to most Azure services must be authorized. Using the [Defau
In this quickstart, `DefaultAzureCredential` authenticates to key vault using the credentials of the local development user logged into the Azure CLI. When the application is deployed to Azure, the same `DefaultAzureCredential` code can automatically discover and use a managed identity that is assigned to an App Service, Virtual Machine, or other services. For more information, see [Managed Identity Overview](/azure/active-directory/managed-identities-azure-resources/overview).
-In this code, the name of your key vault is used to create the key vault URI, in the format `https://<your-key-vault-name>.vault.azure.net`. For more information about authenticating to key vault, see [Developer's Guide](/azure/key-vault/general/developers-guide#authenticate-to-key-vault-in-code).
+In this code, the endpoint of your key vault is used to create the key vault client. The endpoint format looks like `https://<your-key-vault-name>.vault.azure.net` but may change for sovereign clouds. For more information about authenticating to key vault, see [Developer's Guide](/azure/key-vault/general/developers-guide#authenticate-to-key-vault-in-code).
## Code example
This code uses the following [Key Vault Secret classes and methods](/javascript/
### Set up the app framework
-1. Create new text file and paste the following code into the **index.js** file.
+
+* Create new text file and paste the following code into the **index.js** file.
```javascript const { KeyClient } = require("@azure/keyvault-keys");
This code uses the following [Key Vault Secret classes and methods](/javascript/
// - AZURE_CLIENT_SECRET: The client secret for the registered application const credential = new DefaultAzureCredential();
- const keyVaultName = process.env["KEY_VAULT_NAME"];
- if(!keyVaultName) throw new Error("KEY_VAULT_NAME is empty");
- const url = "https://" + keyVaultName + ".vault.azure.net";
+ const keyVaultUrl = process.env["KEY_VAULT_URL"];
+ if(!keyVaultUrl) throw new Error("KEY_VAULT_URL is empty");
- const client = new KeyClient(url, credential);
+ const client = new KeyClient(keyVaultUrl, credential);
const uniqueString = Date.now(); const keyName = `sample-key-${uniqueString}`;
This code uses the following [Key Vault Secret classes and methods](/javascript/
```JSON "key": { "key": {
- "kid": "https://YOUR-KEY-VAULT-NAME.vault.azure.net/keys/YOUR-KEY-NAME/YOUR-KEY-VERSION",
+ "kid": "https://YOUR-KEY-VAULT-ENDPOINT/keys/YOUR-KEY-NAME/YOUR-KEY-VERSION",
+ "kty": "YOUR-KEY-TYPE",
+ "keyOps": [ ARRAY-OF-VALID-OPERATIONS ],
+ ... other properties based on key type
+ },
+ "id": "https://YOUR-KEY-VAULT-ENDPOINT/keys/YOUR-KEY-NAME/YOUR-KEY-VERSION",
+ "name": "YOUR-KEY-NAME",
+ "keyOperations": [ ARRAY-OF-VALID-OPERATIONS ],
+ "keyType": "YOUR-KEY-TYPE",
+ "properties": {
+ "tags": undefined,
+ "enabled": true,
+ "notBefore": undefined,
+ "expiresOn": undefined,
+ "createdOn": 2021-11-29T18:29:11.000Z,
+ "updatedOn": 2021-11-29T18:29:11.000Z,
+ "recoverableDays": 90,
+ "recoveryLevel": "Recoverable+Purgeable",
+ "exportable": undefined,
+ "releasePolicy": undefined,
+ "vaultUrl": "https://YOUR-KEY-VAULT-ENDPOINT",
+ "version": "YOUR-KEY-VERSION",
+ "name": "YOUR-KEY-VAULT-NAME",
+ "managed": undefined,
+ "id": "https://YOUR-KEY-VAULT-ENDPOINT/keys/YOUR-KEY-NAME/YOUR-KEY-VERSION"
+ }
+ }
+ ```
+
+* Create new text file and paste the following code into the **index.ts** file.
+
+ :::code language="typescript" source="~/azure-typescript-e2e-apps/quickstarts/key-vault/src/keys.ts" :::
+
+## Run the sample application
+
+1. Build the TypeScript app:
+
+ ```terminal
+ tsc
+ ```
+
+1. Run the app:
+
+ ```terminal
+ node index.js
+ ```
+
+1. The create and get methods return a full JSON object for the key:
+
+ ```JSON
+ "key": {
+ "key": {
+ "kid": "https://YOUR-KEY-VAULT-ENDPOINT/keys/YOUR-KEY-NAME/YOUR-KEY-VERSION",
"kty": "YOUR-KEY-TYPE", "keyOps": [ ARRAY-OF-VALID-OPERATIONS ], ... other properties based on key type },
- "id": "https://YOUR-KEY-VAULT-NAME.vault.azure.net/keys/YOUR-KEY-NAME/YOUR-KEY-VERSION",
+ "id": "https://YOUR-KEY-VAULT-ENDPOINT/keys/YOUR-KEY-NAME/YOUR-KEY-VERSION",
"name": "YOUR-KEY-NAME", "keyOperations": [ ARRAY-OF-VALID-OPERATIONS ], "keyType": "YOUR-KEY-TYPE",
This code uses the following [Key Vault Secret classes and methods](/javascript/
"recoveryLevel": "Recoverable+Purgeable", "exportable": undefined, "releasePolicy": undefined,
- "vaultUrl": "https://YOUR-KEY-VAULT-NAME.vault.azure.net",
+ "vaultUrl": "https://YOUR-KEY-VAULT-ENDPOINT",
"version": "YOUR-KEY-VERSION", "name": "YOUR-KEY-VAULT-NAME", "managed": undefined,
- "id": "https://YOUR-KEY-VAULT-NAME.vault.azure.net/keys/YOUR-KEY-NAME/YOUR-KEY-VERSION"
+ "id": "https://YOUR-KEY-VAULT-ENDPOINT/keys/YOUR-KEY-NAME/YOUR-KEY-VERSION"
} } ```++ ## Integrating with App Configuration
key-vault Quick Create Node https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/key-vault/secrets/quick-create-node.md
Title: Quickstart - Azure Key Vault secret client library for JavaScript (version 4)
-description: Learn how to create, retrieve, and delete secrets from an Azure key vault using the JavaScript client library
+description: Learn how to create, retrieve, and delete secrets from an Azure key vault using the JavaScript client library with either JavaScript or TypeScript
Previously updated : 02/02/2023 Last updated : 07/30/2024 ms.devlang: javascript-+
+zone_pivot_groups: programming-languages-set-functions-nodejs
# Quickstart: Azure Key Vault secret client library for JavaScript
-Get started with the Azure Key Vault secret client library for JavaScript. [Azure Key Vault](../general/overview.md) is a cloud service that provides a secure store for secrets. You can securely store keys, passwords, certificates, and other secrets. Azure key vaults may be created and managed through the Azure portal. In this quickstart, you learn how to create, retrieve, and delete secrets from an Azure key vault using the JavaScript client library
+Get started with the Azure Key Vault secret client library for JavaScript. [Azure Key Vault](../general/overview.md) is a cloud service that provides a secure store for secrets. You can securely store keys, passwords, certificates, and other secrets. Azure key vaults may be created and managed through the Azure portal. In this quickstart, you learn how to create, retrieve, and delete secrets from an Azure key vault using the JavaScript client library.
Key Vault client library resources:
For more information about Key Vault and secrets, see:
- [Key Vault Overview](../general/overview.md) - [Secrets Overview](about-secrets.md) + ## Prerequisites - An Azure subscription - [create one for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
For more information about Key Vault and secrets, see:
- [Azure portal](../general/quick-create-portal.md) - [Azure PowerShell](../general/quick-create-powershell.md) ++
+## Prerequisites
+
+- An Azure subscription - [create one for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
+- Current [Node.js LTS](https://nodejs.org).
+- [TypeScript 5+](https://www.typescriptlang.org/download/)
+- [Azure CLI](/cli/azure/install-azure-cli).
+- An existing Key Vault - you can create one using:
+ - [Azure CLI](../general/quick-create-cli.md)
+ - [Azure portal](../general/quick-create-portal.md)
+ - [Azure PowerShell](../general/quick-create-powershell.md)
++ This quickstart assumes you are running [Azure CLI](/cli/azure/install-azure-cli). ## Sign in to Azure
Create a Node.js application that uses your key vault.
## Set environment variables
-This application is using key vault name as an environment variable called `KEY_VAULT_NAME`.
+This application is using key vault endpoint as an environment variable called `KEY_VAULT_URL`.
### [Windows](#tab/windows) ```cmd
-set KEY_VAULT_NAME=<your-key-vault-name>
+set KEY_VAULT_URL=<your-key-vault-endpoint>
```` ### [PowerShell](#tab/powershell) Windows PowerShell ```powershell
-$Env:KEY_VAULT_NAME="<your-key-vault-name>"
+$Env:KEY_VAULT_URL="<your-key-vault-endpoint>"
``` ### [macOS or Linux](#tab/linux) ```cmd
-export KEY_VAULT_NAME=<your-key-vault-name>
+export KEY_VAULT_URL=<your-key-vault-endpoint>
```
Application requests to most Azure services must be authorized. Using the [Defau
In this quickstart, `DefaultAzureCredential` authenticates to key vault using the credentials of the local development user logged into the Azure CLI. When the application is deployed to Azure, the same `DefaultAzureCredential` code can automatically discover and use a managed identity that is assigned to an App Service, Virtual Machine, or other services. For more information, see [Managed Identity Overview](/azure/active-directory/managed-identities-azure-resources/overview).
-In this code, the name of your key vault is used to create the key vault URI, in the format `https://<your-key-vault-name>.vault.azure.net`. For more information about authenticating to key vault, see [Developer's Guide](/azure/key-vault/general/developers-guide#authenticate-to-key-vault-in-code).
+In this code, the endpoint of your key vault is used to create the key vault client. The endpoint format looks like `https://<your-key-vault-name>.vault.azure.net` but may change for sovereign clouds. For more information about authenticating to key vault, see [Developer's Guide](/azure/key-vault/general/developers-guide#authenticate-to-key-vault-in-code).
## Code example
This code uses the following [Key Vault Secret classes and methods](/javascript/
### Set up the app framework
-1. Create new text file and paste the following code into the **index.js** file.
+
+* Create new text file and paste the following code into the **index.js** file.
```javascript const { SecretClient } = require("@azure/keyvault-secrets");
This code uses the following [Key Vault Secret classes and methods](/javascript/
// - AZURE_CLIENT_SECRET: The client secret for the registered application const credential = new DefaultAzureCredential();
- const keyVaultName = process.env["KEY_VAULT_NAME"];
- if(!keyVaultName) throw new Error("KEY_VAULT_NAME is empty");
- const url = "https://" + keyVaultName + ".vault.azure.net";
+ const keyVaultUrl = process.env["KEY_VAULT_URL"];
+ if(!keyVaultUrl) throw new Error("KEY_VAULT_URL is empty");
- const client = new SecretClient(url, credential);
+ const client = new SecretClient(keyVaultUrl, credential);
// Create a secret // The secret can be a string of any kind. For example,
This code uses the following [Key Vault Secret classes and methods](/javascript/
## Run the sample application
+1. Run the app:
+
+ ```terminal
+ node index.js
+ ```
+1. The create and get methods return a full JSON object for the secret:
+
+ ```JSON
+ {
+ "value": "MySecretValue",
+ "name": "secret1637692472606",
+ "properties": {
+ "createdOn": "2021-11-23T18:34:33.000Z",
+ "updatedOn": "2021-11-23T18:34:33.000Z",
+ "enabled": true,
+ "recoverableDays": 90,
+ "recoveryLevel": "Recoverable+Purgeable",
+ "id": "https: //YOUR-KEYVAULT-ENDPOINT.vault.azure.net/secrets/secret1637692472606/YOUR-VERSION",
+ "vaultUrl": "https: //YOUR-KEYVAULT-ENDPOINT.vault.azure.net",
+ "version": "YOUR-VERSION",
+ "name": "secret1637692472606"
+ }
+ }
+ ```
+
+ The update method returns the **properties** name/values pairs:
+
+ ```JSON
+ "createdOn": "2021-11-23T18:34:33.000Z",
+ "updatedOn": "2021-11-23T18:34:33.000Z",
+ "enabled": true,
+ "recoverableDays": 90,
+ "recoveryLevel": "Recoverable+Purgeable",
+ "id": "https: //YOUR-KEYVAULT-ENDPOINT/secrets/secret1637692472606/YOUR-VERSION",
+ "vaultUrl": "https: //YOUR-KEYVAULT-ENDPOINT",
+ "version": "YOUR-VERSION",
+ "name": "secret1637692472606"
+ ```
+* Create new text file and paste the following code into the **index.ts** file.
+
+ :::code language="typescript" source="~/azure-typescript-e2e-apps/quickstarts/key-vault/src/secrets.ts" :::
+
+## Run the sample application
+
+1. Build the TypeScript app:
+
+ ```terminal
+ tsc
+ ```
+ 1. Run the app: ```terminal
This code uses the following [Key Vault Secret classes and methods](/javascript/
"enabled": true, "recoverableDays": 90, "recoveryLevel": "Recoverable+Purgeable",
- "id": "https: //YOUR-KEYVAULT-NAME.vault.azure.net/secrets/secret1637692472606/YOUR-VERSION",
- "vaultUrl": "https: //YOUR-KEYVAULT-NAME.vault.azure.net",
+ "id": "https: //YOUR-KEYVAULT-ENDPOINT.vault.azure.net/secrets/secret1637692472606/YOUR-VERSION",
+ "vaultUrl": "https: //YOUR-KEYVAULT-ENDPOINT.vault.azure.net",
"version": "YOUR-VERSION", "name": "secret1637692472606" }
This code uses the following [Key Vault Secret classes and methods](/javascript/
"enabled": true, "recoverableDays": 90, "recoveryLevel": "Recoverable+Purgeable",
- "id": "https: //YOUR-KEYVAULT-NAME.vault.azure.net/secrets/secret1637692472606/YOUR-VERSION",
- "vaultUrl": "https: //YOUR-KEYVAULT-NAME.vault.azure.net",
+ "id": "https: //YOUR-KEYVAULT-ENDPOINT/secrets/secret1637692472606/YOUR-VERSION",
+ "vaultUrl": "https: //YOUR-KEYVAULT-ENDPOINT",
"version": "YOUR-VERSION", "name": "secret1637692472606" ```++++ ## Integrating with App Configuration
machine-learning Concept Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/concept-data.md
Title: Data concepts in Azure Machine Learning
description: Learn key data concepts in Azure Machine Learning -+
machine-learning How To Access Data Interactive https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-access-data-interactive.md
Title: Access data from Azure cloud storage during interactive development
description: Access data from Azure cloud storage during interactive development -+
A machine learning project typically starts with exploratory data analysis (EDA)
> The guidance in this article describes data access during interactive development. It applies to any host that can run a Python session. This can include your local machine, a cloud VM, a GitHub Codespace, etc. We recommend use of an Azure Machine Learning compute instance - a fully managed and pre-configured cloud workstation. For more information, visit [Create an Azure Machine Learning compute instance](how-to-create-compute-instance.md). > [!IMPORTANT]
-> Ensure you have the latest `azure-fsspec` and `mltable` python libraries installed in your Python environment:
+> Ensure you have the latest `azure-fsspec`, `mltable`, and `azure-ai-ml` python libraries installed in your Python environment:
> > ```bash
-> pip install -U azureml-fsspec mltable
+> pip install -U azureml-fsspec==1.3.1 mltable azure-ai-ml
> ```
+The latest `azure-fsspec` package version can potentially change over time. For more information about the `azure-fsspec` package, visit [this resource](https://pypi.org/project/azureml-fsspec/).
+ ## Access data from a datastore URI, like a filesystem An Azure Machine Learning datastore is a *reference* to an *existing* Azure storage account. The benefits of datastore creation and use include:
machine-learning How To Administrate Data Authentication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-administrate-data-authentication.md
Title: Administer data authentication
description: Learn how to manage data access and how to authenticate in Azure Machine Learning. -+
machine-learning How To Deploy Models Llama https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-deploy-models-llama.md
Title: How to deploy Meta Llama 3.1 models with Azure Machine Learning studio
description: Learn how to deploy Meta Llama 3.1 models with Azure Machine Learning studio. -+ Last updated 07/23/2024
machine-learning How To Export Delete Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/how-to-export-delete-data.md
Previously updated : 08/11/2023 Last updated : 08/01/2024 monikerRange: 'azureml-api-2 || azureml-api-1'
In Azure Machine Learning, you can export or delete your workspace data with eit
## Control your workspace data
-The in-product data that Azure Machine Learning stores is available for export and deletion. You can export and delete data with Azure Machine Learning studio, the CLI, and the SDK. Additionally, you can access telemetry data through the Azure Privacy portal.
+Azure Machine Learning stores in-product data that is available for export and deletion. You can export and delete data with Azure Machine Learning studio, the CLI, or the SDK. Additionally, you can access telemetry data through the Azure Privacy portal.
In Azure Machine Learning, personal data consists of user information in job history documents.
-An Azure workspace relies on a **resource group** to hold the related resources for an Azure solution. When you create a workspace, you have the opportunity to use an existing resource group, or to create a new one. See [this page](../azure-resource-manager/management/manage-resource-groups-portal.md) to learn more about Azure resource groups.
+An Azure workspace relies on a **resource group** to hold the related resources for an Azure solution. When you create a workspace, you can either use an existing resource group, or you can create a new one. Visit [this resource](../azure-resource-manager/management/manage-resource-groups-portal.md) for more information about Azure resource groups.
## Delete high-level resources using the portal
When you create a workspace, Azure creates several resources within the resource
To delete these resources, select them from the list, and choose **Delete**: > [!IMPORTANT]
-> If the resource is configured for soft delete, the data won't actually delete unless you optionally select to delete the resource permanently. For more information, see the following articles:
-> * [Workspace soft-deletion](concept-soft-delete.md).
-> * [Soft delete for blobs](../storage/blobs/soft-delete-blob-overview.md).
-> * [Soft delete in Azure Container Registry](../container-registry/container-registry-soft-delete-policy.md).
-> * [Azure log analytics workspace](../azure-monitor/logs/delete-workspace.md).
-> * [Azure Key Vault soft-delete](../key-vault/general/soft-delete-overview.md).
+> If the resource is configured for soft delete, the data won't actually delete unless you optionally select to delete the resource permanently. For more information, visit these resources:
+> * [Azure log analytics workspace](../azure-monitor/logs/delete-workspace.md)
+> * [Azure Key Vault soft-delete](../key-vault/general/soft-delete-overview.md)
+> * [Soft delete for blobs](../storage/blobs/soft-delete-blob-overview.md)
+> * [Soft delete in Azure Container Registry](../container-registry/container-registry-soft-delete-policy.md)
+> * [Workspace soft-deletion](concept-soft-delete.md)
:::image type="content" source="media/how-to-export-delete-data/delete-resource-group-resources.png" lightbox="media/how-to-export-delete-data/delete-resource-group-resources.png" alt-text="Screenshot of portal, with delete icon highlighted."::: A confirmation dialog box opens, where you can confirm your choices.
-Job history documents might contain personal user information. These documents are stored in the storage account in blob storage, in `/azureml` subfolders. You can download and delete the data from the portal.
+Job history documents might contain personal user information. These documents are stored in the storage account in blob storage, in `/azureml` subfolders. You can download and delete the data from the portal. First, select the **Storage accounts** Azure services in the Azure portal, as shown in this screenshot:
+
+At the **Storage accounts** page, select the relevant storage account, as shown in this screenshot:
++
+Select **Containers** as shown in this screenshot:
++
+Select a specific container, as shown in this screenshot:
++
+In that container, select and delete the resource or resources you wish to delete, as shown in this screenshot:
+ ## Export and delete machine learning resources using Azure Machine Learning studio
-Azure Machine Learning studio provides a unified view of your machine learning resources - for example, notebooks, data assets, models, and jobs. Azure Machine Learning studio emphasizes preservation of a record of your data and experiments. You can delete computational resources - pipelines and compute resources - right in the browser. For these resources, navigate to the resource in question, and choose **Delete**.
+Azure Machine Learning studio provides a unified view of your machine learning resources - for example, data assets, models, notebooks, and jobs. Azure Machine Learning studio emphasizes preservation of a record of your data and experiments. You can delete computational resources - pipelines and compute resources - right in the browser. For these resources, navigate to the resource in question, and choose **Delete**.
+
+You can unregister data assets and archive jobs, but these operations don't delete the data. To completely remove the data, data assets and job data require deletion at the storage level. Storage level deletion happens in the portal, as described earlier. Azure Machine Learning studio can handle individual deletion. Job deletion deletes the data of that job.
+
+### Artifact and log downloads of jobs
-You can unregister data assets and archive jobs, but these operations don't delete the data. To entirely remove the data, data assets and job data require deletion at the storage level. Storage level deletion happens in the portal, as described earlier. Azure Machine Learning studio can handle individual deletion. Job deletion deletes the data of that job.
+Azure Machine Learning studio can handle training artifact and log downloads from experimental jobs. At the Azure Machine Learning studio main page, select **Jobs** as shown in this screenshot:
-Azure Machine Learning studio can handle training artifact downloads from experimental jobs. Choose the relevant **Job**. Choose **Output + logs**, and navigate to the specific artifacts you wish to download. Choose **...** and **Download**, or select **Download all**.
-To download a registered model, navigate to the **Model** and choose **Download**.
+To show the available jobs, select the **All Jobs** tab, as shown in this screenshot:
+
+Select a specific job, as shown in this screenshot:
++
+Select **Download all**, as shown in this screenshot:
++
+### Download a registered model
+
+To download a registered model, select **Models** to open the **Model List** in Azure Machine Learning studio, and then select a specific model, as shown in this screenshot:
++
+Select **Download all** to start the model download process, as shown in this screenshot:
+ :::moniker range="azureml-api-1"+ ## Export and delete resources using the Python SDK
-You can download the outputs of a particular job using:
+You can download the outputs of a particular job using:
```python # Retrieved from Azure Machine Learning web UI
metrics_output_port.download('.', show_progress=True)
model_output_port.download('.', show_progress=True) ```
-The following machine learning resources can be deleted using the Python SDK:
+You can delete these machine learning resources with the Python SDK:
-| Type | Function Call | Notes |
+| Type | Function Call | Notes |
| | | |
-| `Workspace` | [`delete`](/python/api/azureml-core/azureml.core.workspace.workspace#delete-delete-dependent-resources-false--no-wait-false-) | Use `delete-dependent-resources` to cascade the delete |
-| `Model` | [`delete`](/python/api/azureml-core/azureml.core.model%28class%29#delete--) | |
-| `ComputeTarget` | [`delete`](/python/api/azureml-core/azureml.core.computetarget#delete--) | |
-| `WebService` | [`delete`](/python/api/azureml-core/azureml.core.webservice%28class%29) | |
+| `Workspace` | [`delete`](/python/api/azureml-core/azureml.core.workspace(class)#azureml-core-workspace-delete) | Use `delete-dependent-resources` to cascade the delete |
+| `Model` | [`delete`](/python/api/azureml-core/azureml.core.workspace(class)#azureml-core-model-delete) | |
+| `ComputeTarget` | [`delete`](/python/api/azureml-core/azureml.core.computetarget#azureml-core-computetarget-delete) | |
+| `WebService` | [`delete`](/python/api/azureml-core/azureml.core.workspace(class)#azureml-core-webservice-delete) | |
:::moniker-end ## Next steps
-Learn more about [Managing a workspace](how-to-manage-workspace.md).
+[Learn more about managing workspaces](how-to-manage-workspace.md)
machine-learning How To Authenticate Web Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-authenticate-web-service.md
-+ Last updated 11/16/2022
machine-learning How To Consume Web Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-consume-web-service.md
Title: Create client for model deployed as web service
description: Learn how to call a web service endpoint that was generated when a model was deployed from Azure Machine Learning. -+
machine-learning How To Deploy And Where https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-deploy-and-where.md
Title: Deploy machine learning models
description: 'Learn how and where to deploy machine learning models. Deploy to Azure Container Instances, Azure Kubernetes Service, and FPGA.' -+
machine-learning How To Deploy Azure Container Instance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-deploy-azure-container-instance.md
Title: How to deploy models to Azure Container Instances with CLI (v1)
description: 'Use CLI (v1) to deploy your Azure Machine Learning models as a web service using Azure Container Instances.' -+
machine-learning How To Deploy Azure Kubernetes Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-deploy-azure-kubernetes-service.md
Title: Deploy ML models to Azure Kubernetes Service with CLI and SDK v1
description: 'Use CLI (v1) and SDK (v1) to deploy your Azure Machine Learning models as a web service using Azure Kubernetes Service.' -+
machine-learning How To Deploy Inferencing Gpus https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-deploy-inferencing-gpus.md
Title: Deploy a model for inference with GPU
description: This article teaches you how to use Azure Machine Learning to deploy a GPU-enabled Tensorflow deep learning model as a web service.service and score inference requests. -+
machine-learning How To Deploy Package Models https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-deploy-package-models.md
Title: Package models
description: 'Package a model. Models can be packaged as either a docker image, which you can then download, or you can create a Dockerfile and use it to build the image.' -+ Last updated 10/21/2021
machine-learning How To Deploy Profile Model https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-deploy-profile-model.md description: Use CLI (v1) or SDK (v1) to profile your model before deployment. Profiling determines the memory and CPU usage of your model. -+ Last updated 11/04/2022
machine-learning How To Deploy Update Web Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-deploy-update-web-service.md
Title: Update deployed web services description: Learn how to refresh a web service that is already deployed in Azure Machine Learning. You can update settings such as model, environment, and entry script.-+
machine-learning How To Extend Prebuilt Docker Image Inference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-extend-prebuilt-docker-image-inference.md
Title: Extend prebuilt Docker image
description: 'Extend Prebuilt docker images in Azure Machine Learning' -+
machine-learning How To Prebuilt Docker Images Inference Python Extensibility https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-prebuilt-docker-images-inference-python-extensibility.md
Title: Prebuilt Docker image Python extensibility
description: 'Extend prebuilt docker images with Python package extensibility solution.' -+
machine-learning How To Troubleshoot Deployment https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-troubleshoot-deployment.md
Title: Troubleshooting remote model deployment
description: Learn how to work around, solve, and troubleshoot some common Docker deployment errors with Azure Kubernetes Service and Azure Container Instances. -+ Last updated 11/16/2022
machine-learning How To Troubleshoot Prebuilt Docker Image Inference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/machine-learning/v1/how-to-troubleshoot-prebuilt-docker-image-inference.md
Title: Troubleshoot prebuilt docker images
description: 'Troubleshooting steps for using prebuilt Docker images for inference.' -+
network-watcher Azure Monitor Agent With Connection Monitor https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/azure-monitor-agent-with-connection-monitor.md
description: Learn how to use Azure Monitor agent to monitor network connectivity with Network Watcher connection monitor. -+ Last updated 03/12/2024
network-watcher Connection Monitor Connected Machine Agent https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-monitor-connected-machine-agent.md
description: Learn how to install the Azure Connected Machine agent using an installation script to use the Azure Network Watcher connection monitor. -+ Last updated 11/15/2023
network-watcher Connection Monitor Create Using Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-monitor-create-using-portal.md
description: Learn how to create a monitor in Azure Network Watcher connection monitor using the Azure portal. -+ Last updated 11/30/2023
network-watcher Connection Monitor Create Using Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-monitor-create-using-powershell.md
description: Learn how to create an Azure Network Watcher connection monitor using Azure PowerShell. -+ Last updated 01/07/2021
network-watcher Connection Monitor Install Azure Monitor Agent https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-monitor-install-azure-monitor-agent.md
description: Learn how to install, upgrade, and uninstall Azure Monitor Agent on Azure Arc-enabled servers. -+ Last updated 11/15/2023
network-watcher Connection Monitor Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-monitor-overview.md
description: Learn about Azure Network Watcher connection monitor and how to use it to monitor network communication in a distributed environment. -+ Last updated 07/05/2024
network-watcher Connection Monitor Schema https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-monitor-schema.md
description: Learn about the available tests data and path data schemas in Azure Network Watcher connection monitor. -+ Last updated 02/23/2024
network-watcher Connection Monitor Virtual Machine Scale Set https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-monitor-virtual-machine-scale-set.md
description: In this tutorial, you'll learn how to use Azure Network Watcher connection monitor tool to monitor network communication with a virtual machine scale set using the Azure portal. -+ Last updated 05/31/2024
network-watcher Connection Troubleshoot Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-troubleshoot-cli.md
description: Learn how to use the connection troubleshoot feature of Azure Network Watcher to troubleshoot outbound connections using the Azure CLI. -+ Last updated 03/21/2024
network-watcher Connection Troubleshoot Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-troubleshoot-overview.md
description: Learn about Azure Network Watcher connection troubleshoot tool, the issues it can detect, and the responses it gives. -+ Last updated 02/22/2024
network-watcher Connection Troubleshoot Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-troubleshoot-portal.md
description: Learn how to use the connection troubleshoot feature of Azure Network Watcher to troubleshoot outbound connections using the Azure portal. -+ Last updated 03/20/2024
network-watcher Connection Troubleshoot Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/connection-troubleshoot-powershell.md
description: Learn how to use the connection troubleshoot feature of Azure Network Watcher to troubleshoot outbound connections using Azure PowerShell. -+ Last updated 03/20/2024
network-watcher Data Residency https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/data-residency.md
Title: Data residency for Azure Network Watcher
description: Learn about data residency for the Azure Network Watcher. -+ Last updated 05/14/2024
network-watcher Diagnose Communication Problem Between Networks https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-communication-problem-between-networks.md
description: In this tutorial, you learn how to use Azure Network Watcher VPN troubleshoot to diagnose a communication problem between virtual networks connected by VPN gateways. -+ Last updated 11/29/2023
network-watcher Diagnose Network Security Rules https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-network-security-rules.md
description: Use NSG diagnostics to check if traffic is allowed or denied by network security group rules or Azure Virtual Network Manager security admin rules. -+ Last updated 08/15/2023
network-watcher Diagnose Vm Network Routing Problem Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-vm-network-routing-problem-cli.md
Title: Diagnose a VM network routing problem - Azure CLI description: In this article, you learn how to use Azure CLI to diagnose a virtual machine network routing problem using the next hop capability of Azure Network Watcher.- -+ Last updated 03/18/2022 -+ # Customer intent: I need to diagnose virtual machine (VM) network routing problem that prevents communication to different destinations.
network-watcher Diagnose Vm Network Routing Problem Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-vm-network-routing-problem-powershell.md
Title: Diagnose a VM network routing problem - Azure PowerShell description: In this article, you learn how to diagnose a virtual machine network routing problem using the next hop capability of Azure Network Watcher.- -+ Last updated 01/07/2021
network-watcher Diagnose Vm Network Routing Problem https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-vm-network-routing-problem.md
description: In this tutorial, you learn how to diagnose a virtual machine network routing problem using the next hop capability of Azure Network Watcher. -+ Last updated 10/26/2023
network-watcher Diagnose Vm Network Traffic Filtering Problem Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-vm-network-traffic-filtering-problem-cli.md
description: In this quickstart, you learn how to diagnose a virtual machine network traffic filter problem using Azure Network Watcher IP flow verify in Azure CLI. -+ Last updated 08/23/2023
network-watcher Diagnose Vm Network Traffic Filtering Problem Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-vm-network-traffic-filtering-problem-powershell.md
description: In this quickstart, you learn how to diagnose a virtual machine network traffic filter problem using Azure Network Watcher IP flow verify in Azure PowerShell. -+ Last updated 08/23/2023
network-watcher Diagnose Vm Network Traffic Filtering Problem https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/diagnose-vm-network-traffic-filtering-problem.md
description: In this quickstart, you learn how to diagnose a virtual machine network traffic filter problem using Azure Network Watcher IP flow verify in the Azure portal. -+ Last updated 10/26/2023
network-watcher Effective Security Rules Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/effective-security-rules-overview.md
description: Learn about Azure Network Watcher's effective security rules feature, which provides visibility into security and admin rules applied to a network interface. -+ Last updated 09/15/2023 #CustomerIntent: As an Azure administrator, I want to see the effective security rules applied to an Azure virtual machine (VM) instead of checking each network security group that applies to the VM.
network-watcher Flow Logs Read https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/flow-logs-read.md
description: Learn how to use a PowerShell script to parse flow logs that are created hourly and updated every few minutes in Azure Network Watcher. -+ Last updated 04/24/2024
network-watcher Ip Flow Verify Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/ip-flow-verify-overview.md
description: Learn about Azure Network Watcher IP flow verify to check if traffic is allowed or denied to and from your Azure virtual machines (VMs). -+ Last updated 09/28/2023
network-watcher Migrate To Connection Monitor From Connection Monitor Classic https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/migrate-to-connection-monitor-from-connection-monitor-classic.md
description: Learn how to migrate your connection monitors from Connection monitor (classic) to the new Connection monitor. -+ Last updated 03/12/2024
network-watcher Migrate To Connection Monitor From Network Performance Monitor https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/migrate-to-connection-monitor-from-network-performance-monitor.md
description: Learn how to migrate your tests from Network performance monitor to the new Connection monitor in Azure Network Watcher. -+ Last updated 03/12/2024
network-watcher Monitor Vm Communication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/monitor-vm-communication.md
description: In this tutorial, learn how to monitor network communication between two Azure virtual machines with Azure Network Watcher's connection monitor capability. -+ Last updated 09/29/2023
network-watcher Network Insights Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-insights-overview.md
description: An overview of Azure Monitor Network Insights, which provides a com
-+ Last updated 04/19/2024
network-watcher Network Insights Topology https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-insights-topology.md
Title: View topology
description: Learn how to use Network Insights topology to get a visual representation of Azure resources with connectivity and traffic insights for monitoring. -+ Last updated 06/05/2024
network-watcher Network Insights Troubleshooting https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-insights-troubleshooting.md
description: Learn how to troubleshoot some of the common issues that you may encounter when using Azure Monitor network insights. -+ Last updated 09/29/2023
network-watcher Network Watcher Alert Triggered Packet Capture https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-alert-triggered-packet-capture.md
Title: Use packet capture to do proactive network monitoring with alerts - Azure
description: Learn how to create an alert-triggered packet capture by using Azure Network Watcher and Azure Functions. -+ Last updated 02/14/2024
network-watcher Network Watcher Analyze Nsg Flow Logs Graylog https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-analyze-nsg-flow-logs-graylog.md
Title: Analyze Azure network security group flow logs - Graylog description: Learn how to manage and analyze network security group flow logs in Azure using Network Watcher and Graylog.- -+ Last updated 05/31/2024
network-watcher Network Watcher Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-create.md
Title: Enable or disable Azure Network Watcher
description: Learn how to enable or disable Azure Network Watcher in your region by creating a Network Watcher instance using the Azure portal, PowerShell, the Azure CLI, REST API, or ARM template. -+ Last updated 06/13/2024
network-watcher Network Watcher Delete Nsg Flow Log Blobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-delete-nsg-flow-log-blobs.md
Title: Delete storage blobs for network security group flow logs in Azure Network Watcher description: This article explains how to delete the network security group flow log storage blobs that are outside their retention policy period in Azure Network Watcher.- -+ Last updated 01/07/2021
network-watcher Network Watcher Diagnose On Premises Connectivity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-diagnose-on-premises-connectivity.md
description: Learn how to diagnose on-premises VPN connectivity with Azure using Azure Network Watcher VPN troubleshoot tool. -+ Last updated 02/09/2024
network-watcher Network Watcher Intrusion Detection Open Source Tools https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-intrusion-detection-open-source-tools.md
description: Learn how to use Azure Network Watcher and open-source tools to perform network intrusion detection. -+ Last updated 07/30/2024
network-watcher Network Watcher Monitor With Azure Automation https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-monitor-with-azure-automation.md
Title: Troubleshoot and monitor VPN gateways - Azure Automation description: This article describes how to diagnose On-premises connectivity with Azure Automation and Network Watcher- -+ Last updated 11/20/2020-
network-watcher Network Watcher Network Configuration Diagnostics Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-network-configuration-diagnostics-overview.md
Title: NSG diagnostics description: Learn about NSG diagnostics tool in Azure Network Watcher.- -+ Last updated 06/27/2023- # NSG diagnostics overview
network-watcher Network Watcher Nsg Auditing Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-nsg-auditing-powershell.md
Title: Automate NSG auditing with security group view description: This page provides instructions on how to configure auditing of a Network Security Group- -+ Last updated 03/28/2023 - # Automate NSG auditing with Azure Network Watcher security group view
network-watcher Network Watcher Nsg Grafana https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-nsg-grafana.md
Title: Manage NSG Flow Logs using Grafana
description: Manage and analyze Network Security Group Flow Logs in Azure using Network Watcher and Grafana. -+ Last updated 05/31/2024
network-watcher Network Watcher Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-overview.md
Title: Azure Network Watcher overview
description: Learn about Azure Network Watcher's monitoring, diagnostics, logging, and metrics capabilities in a virtual network. -+ Last updated 06/12/2024
network-watcher Network Watcher Packet Capture Manage Portal Vmss https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-packet-capture-manage-portal-vmss.md
Title: Manage packet captures in virtual machine scale sets - Azure portal description: Learn how to manage packet captures in virtual machine scale sets with the packet capture feature of Network Watcher using the Azure portal.- -+ Last updated 06/07/2022-
network-watcher Network Watcher Packet Capture Manage Powershell Vmss https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-packet-capture-manage-powershell-vmss.md
Title: Manage packet captures in virtual machine scale sets - Azure PowerShell description: Learn how to manage packet captures in virtual machine scale sets with the packet capture feature of Network Watcher using PowerShell.- -+ Last updated 06/07/2022 -+ # Manage packet captures in Virtual machine scale set with Azure Network Watcher using PowerShell
network-watcher Network Watcher Using Open Source Tools https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-using-open-source-tools.md
Title: Visualize network traffic patterns by using open-source tools description: Learn how to use Network Watcher packet capture with CapAnalysis to visualize traffic patterns to and from your VMs.- -+ Last updated 02/25/2021-
network-watcher Network Watcher Visualize Nsg Flow Logs Open Source Tools https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-visualize-nsg-flow-logs-open-source-tools.md
Title: Visualize NSG flow logs - Elastic Stack
description: Manage and analyze network security group Flow Logs in Azure using Network Watcher and Elastic Stack. -+ Last updated 07/30/2024
network-watcher Network Watcher Visualize Nsg Flow Logs Power Bi https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/network-watcher-visualize-nsg-flow-logs-power-bi.md
Title: Visualizing Azure NSG flow logs - Power BI description: Learn how to use Power BI to visualize network security group flow logs to allow you to view information about IP traffic in Azure Network Watcher.- -+ Last updated 06/23/2021 - # Visualizing network security group flow logs with Power BI
network-watcher Next Hop Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/next-hop-overview.md
description: Learn about Azure Network Watcher next hop capability that you can use to diagnose virtual machine routing problems. -+ Last updated 03/13/2024
network-watcher Nsg Flow Logs Azure Resource Manager https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/nsg-flow-logs-azure-resource-manager.md
description: Learn how to create or delete Azure Network Watcher NSG flow logs using an Azure Resource Manager template (ARM template). -+ Last updated 06/01/2023
network-watcher Nsg Flow Logs Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/nsg-flow-logs-cli.md
description: Learn how to create, change, disable, or delete Azure Network Watcher NSG flow logs using the Azure CLI. -+ Last updated 05/30/2024
network-watcher Nsg Flow Logs Migrate https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/nsg-flow-logs-migrate.md
description: Learn how to migrate your Azure Network Watcher network security group flow logs to virtual network flow logs using the Azure portal and a PowerShell script. -+ Last updated 05/10/2024
network-watcher Nsg Flow Logs Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/nsg-flow-logs-overview.md
description: Learn about NSG flow logs feature of Azure Network Watcher, which allows you to log information about IP traffic flowing through a network security group. -+ Last updated 02/15/2024
network-watcher Nsg Flow Logs Policy Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/nsg-flow-logs-policy-portal.md
description: Learn how to use Azure Policy built-in policies to audit network security groups and deploy Azure Network Watcher NSG flow logs. -+ Last updated 05/30/2024
network-watcher Nsg Flow Logs Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/nsg-flow-logs-portal.md
description: Learn how to create, change, disable, or delete Azure Network Watcher NSG flow logs using the Azure portal. -+ Last updated 07/25/2024
network-watcher Nsg Flow Logs Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/nsg-flow-logs-powershell.md
description: Learn how to create, change, disable, or delete Azure Network Watcher NSG flow logs using Azure PowerShell. -+ Last updated 05/30/2024
network-watcher Nsg Flow Logs Rest https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/nsg-flow-logs-rest.md
description: Learn how to create, change, or disable Azure Network Watcher NSG flow logs using REST API. -+ Last updated 06/01/2023
network-watcher Nsg Flow Logs Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/nsg-flow-logs-tutorial.md
description: In this tutorial, you learn how to log network traffic flow to and from a virtual machine (VM) using Network Watcher NSG flow logs capability. -+ Last updated 09/26/2023 # CustomerIntent: As an Azure administrator, I need to log the network traffic to and from a virtual machine (VM) so I can analyze the data for anomalies.
network-watcher Packet Capture Inspect https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/packet-capture-inspect.md
description: Learn how to inspect and analyze network data that Azure Network Watcher previously captured for packets. -+ Last updated 02/07/2024 #CustomerIntent: As a network administrator, I want to inspect packets captured by Network Watcher to investigate network problems.
network-watcher Packet Capture Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/packet-capture-overview.md
description: Learn about Azure Network Watcher packet capture tool, supported resources, available configurations, limits, and considerations. -+ Last updated 02/23/2024
network-watcher Packet Capture Vm Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/packet-capture-vm-cli.md
description: Learn how to start, stop, download, and delete Azure virtual machines packet captures with the packet capture feature of Network Watcher using the Azure CLI. -+ Last updated 01/31/2024
network-watcher Packet Capture Vm Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/packet-capture-vm-portal.md
description: Learn how to start, stop, download, and delete Azure virtual machines packet captures with the packet capture feature of Network Watcher using the Azure portal. -+ Last updated 02/07/2024 #CustomerIntent: As an administrator, I want to capture IP packets to and from a virtual machine (VM) so I can review and analyze the data to help diagnose and solve network problems.
network-watcher Packet Capture Vm Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/packet-capture-vm-powershell.md
description: Learn how to start, stop, download, and delete Azure virtual machines packet captures with the packet capture feature of Network Watcher using Azure PowerShell. -+ Last updated 02/07/2024
network-watcher Quickstart Configure Network Security Group Flow Logs From Arm Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/quickstart-configure-network-security-group-flow-logs-from-arm-template.md
description: Learn how to enable network security group (NSG) flow logs programmatically using an Azure Resource Manager (ARM) template and Azure PowerShell. -+ Last updated 12/13/2023
network-watcher Quickstart Configure Network Security Group Flow Logs From Bicep https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/quickstart-configure-network-security-group-flow-logs-from-bicep.md
description: In this quickstart, you learn how to enable NSG flow logs programmatically using a Bicep file to log the traffic flowing through a network security group. -+ Last updated 09/29/2023
network-watcher Required Rbac Permissions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/required-rbac-permissions.md
description: Learn about the required Azure role-based access control (Azure RBAC) permissions to have in order to use each of the Azure Network Watcher capabilities. -+ Last updated 05/09/2024
network-watcher Supported Region Traffic Analytics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/supported-region-traffic-analytics.md
description: Learn about the regions that support enabling traffic analytics on NSG flow logs and the Log Analytics workspaces that you can use. -+ Last updated 06/15/2023 -+ # Traffic analytics supported regions
network-watcher Traffic Analytics Policy Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/traffic-analytics-policy-portal.md
description: Learn how to use Azure Policy built-in policies to audit Azure Network Watcher NSG flow logs and manage the deployment of traffic analytics. -+ Last updated 05/30/2024
network-watcher Traffic Analytics Schema Update https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/traffic-analytics-schema-update.md
description: Learn how to use queries to replace the deprecated fields in the Tr
-+ Last updated 06/20/2023
network-watcher Traffic Analytics Schema https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/traffic-analytics-schema.md
description: Learn about schema and data aggregation in Azure Network Watcher traffic analytics to analyze flow logs. -+ Last updated 07/11/2024
network-watcher Traffic Analytics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/traffic-analytics.md
description: Learn what Azure Network Watcher traffic analytics is, and how to use it for viewing network activity, securing networks, and optimizing performance. -+ Last updated 04/24/2024
network-watcher Usage Scenarios Traffic Analytics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/usage-scenarios-traffic-analytics.md
description: Learn about Azure Network Watcher traffic analytics and the insights it can provide in different usage scenarios. -+ Last updated 11/02/2023
network-watcher View Relative Latencies https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/view-relative-latencies.md
Title: View relative latencies to Azure regions from specific locations
description: Learn how to view relative latencies across Internet providers to Azure regions from specific locations. -+ Last updated 04/20/2022 -+ # View relative latency to Azure regions from specific locations
network-watcher Vnet Flow Logs Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/vnet-flow-logs-cli.md
description: Learn how to create, change, enable, disable, or delete Azure Network Watcher virtual network flow logs using the Azure CLI. -+ Last updated 04/24/2024
network-watcher Vnet Flow Logs Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/vnet-flow-logs-overview.md
description: Learn about Azure Network Watcher virtual network flow logs and how to use them to record your virtual network's traffic. -+ Last updated 07/11/2024
network-watcher Vnet Flow Logs Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/vnet-flow-logs-policy.md
description: Learn how to use Azure Policy built-in policies to audit virtual networks and deploy Azure Network Watcher virtual network flow logs. -+ Last updated 05/07/2024
network-watcher Vnet Flow Logs Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/vnet-flow-logs-portal.md
description: Learn how to create, change, enable, disable, or delete Azure Network Watcher virtual network flow logs using the Azure portal. -+ Last updated 07/26/2024
network-watcher Vnet Flow Logs Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/vnet-flow-logs-powershell.md
description: Learn how to create, change, enable, disable, or delete Azure Network Watcher virtual network flow logs using Azure PowerShell. -+ Last updated 04/24/2024
network-watcher Vpn Troubleshoot Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/vpn-troubleshoot-cli.md
description: Learn how to use Azure Network Watcher VPN troubleshoot capability to troubleshoot VPN virtual network gateways and their connections using the Azure CLI. -+ Last updated 11/30/2023
network-watcher Vpn Troubleshoot Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/vpn-troubleshoot-overview.md
description: Learn about Azure Network Watcher VPN troubleshoot capability and how to use it to troubleshoot VPN virtual network gateways and their connections. -+ Last updated 02/22/2024
network-watcher Vpn Troubleshoot Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/network-watcher/vpn-troubleshoot-powershell.md
description: Learn how to use Azure Network Watcher VPN troubleshoot capability to troubleshoot VPN virtual network gateways and their connections using PowerShell. -+ Last updated 11/29/2023
networking Traffic Manager Powershell Websites High Availability https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/networking/scripts/traffic-manager-powershell-websites-high-availability.md
description: Azure PowerShell Script Sample - Route traffic for high availabilit
-+ ms.devlang: powershell Last updated 04/27/2023
notification-hubs Android Sdk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/android-sdk.md
Last updated 05/08/2024 -+ ms.lastreviewed: 03/14/2024
notification-hubs Browser Push https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/browser-push.md
description: Learn about support for browser push notifications in Azure Notific
-+ mobile-multiple Last updated 03/19/2024
notification-hubs Change Pricing Tier https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/change-pricing-tier.md
Title: Change pricing tier of Notification Hubs namespace | Microsoft Docs
description: Learn how to change the pricing tier of an Azure Notification Hubs namespace. -+ Last updated 08/03/2020
notification-hubs Configure Apple Push Notification Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/configure-apple-push-notification-service.md
-+ Last updated 06/22/2020
notification-hubs Configure Baidu Cloud Push https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/configure-baidu-cloud-push.md
-+ Last updated 03/25/2019
notification-hubs Configure Google Firebase Cloud Messaging https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/configure-google-firebase-cloud-messaging.md
-+ Last updated 05/08/2024
notification-hubs Configure Microsoft Push Notification Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/configure-microsoft-push-notification-service.md
-+ Last updated 08/23/2021
notification-hubs Configure Notification Hub Portal Pns Settings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/configure-notification-hub-portal-pns-settings.md
description: Learn how to set up Azure Notification Hubs in the Azure portal by
-+ Last updated 06/30/2023
notification-hubs Configure Windows Push Notification Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/configure-windows-push-notification-service.md
-+ Last updated 08/04/2020
notification-hubs Create Notification Hub Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/create-notification-hub-portal.md
Last updated 02/21/2024 -+
notification-hubs Create Notification Hub Template https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/create-notification-hub-template.md
Last updated 09/21/2022 ms.lastreviewed: 05/15/2020 -+
notification-hubs Encrypt At Rest https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/encrypt-at-rest.md
Title: Azure Notification Hubs encryption for data at rest
description: Learn how data is encrypted at rest in Azure Notification Hubs. -+ Last updated 03/19/2022
notification-hubs Eu Data Boundary https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/eu-data-boundary.md
Title: EU Data Boundary compliance in Azure Notification Hubs
description: Learn about the EU data boundary capabilities of Azure Notification Hubs. -+ Last updated 02/01/2023
notification-hubs Export Modify Registrations Bulk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/export-modify-registrations-bulk.md
Title: Export and import Azure Notification Hubs registrations in bulk | Microso
description: Learn how to use Notification Hubs bulk support to perform a large number of operations on a notification hub, or to export all registrations. -+ Last updated 08/04/2020
notification-hubs Firebase Migration Rest https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/firebase-migration-rest.md
Title: Azure Notification Hubs and the Google Firebase Cloud Messaging (FCM) mig
description: Describes how Azure Notification Hubs addresses the Google GCM to FCM migration using REST APIs. -+ Last updated 05/08/2024
notification-hubs Firebase Migration Sdk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/firebase-migration-sdk.md
Title: Azure Notification Hubs and the Google Firebase Cloud Messaging (FCM) mig
description: Describes how Azure Notification Hubs addresses the Google Cloud Messaging (GCM) to FCM migration using the Azure SDKs. -+ Last updated 05/08/2024
notification-hubs Ios Sdk Current https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/ios-sdk-current.md
Last updated 06/19/2020 -+ ms.lastreviewed: 06/01/2020
notification-hubs Ios Sdk Get Started https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/ios-sdk-get-started.md
Last updated 10/30/2020 -+ ms.lastreviewed: 06/01/2020
notification-hubs Monitor Notification Hubs Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/monitor-notification-hubs-reference.md
-+ # Azure Notification Hubs monitoring data reference
notification-hubs Monitor Notification Hubs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/monitor-notification-hubs.md
-+ # Monitor Azure Notification Hubs
notification-hubs Move Registrations https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/move-registrations.md
Title: Move Azure Notification Hubs resources from one region to another
description: Learn how to move Azure Notification Hubs resources to a different Azure region. -+ Last updated 09/07/2021
notification-hubs Notification Hubs Android Push Notification Google Fcm Get Started https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-android-push-notification-google-fcm-get-started.md
keywords: push notifications,push notification,android push notification,fcm,fir
-+ mobile-android ms.devlang: java
notification-hubs Notification Hubs App Service https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-app-service.md
-+ multiple
notification-hubs Notification Hubs Aspnet Backend Ios Apple Apns Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-aspnet-backend-ios-apple-apns-notification.md
description: Learn how to send push notifications to specific iOS users by using
-+ ios ms.devlang: objective-c
notification-hubs Notification Hubs Aspnet Backend Ios Apple Push Notification Service Apns Rich https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-aspnet-backend-ios-apple-push-notification-service-apns-rich.md
-+ ios ms.devlang: objective-c
notification-hubs Notification Hubs Aspnet Backend Ios Push Apple Apns Secure Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-aspnet-backend-ios-push-apple-apns-secure-notification.md
-+ ios ms.devlang: objective-c
notification-hubs Notification Hubs Aspnet Backend Windows Dotnet Wns Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-aspnet-backend-windows-dotnet-wns-notification.md
-+ mobile-windows ms.devlang: csharp
notification-hubs Notification Hubs Aspnet Backend Windows Dotnet Wns Secure Push Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-aspnet-backend-windows-dotnet-wns-secure-push-notification.md
editor: thsomasu -+ windows ms.devlang: csharp
notification-hubs Notification Hubs Aspnet Cross Platform Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-aspnet-cross-platform-notification.md
editor: thsomasu -+ mobile-windows ms.devlang: csharp
notification-hubs Notification Hubs Baidu China Android Notifications Get Started https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-baidu-china-android-notifications-get-started.md
description: In this tutorial, you learn how to use Azure Notification Hubs to p
-+ ms.devlang: java mobile-baidu
notification-hubs Notification Hubs Deploy And Manage Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-deploy-and-manage-powershell.md
editor: jwargo ms.assetid: 7c58f2c8-0399-42bc-9e1e-a7f073426451-+ powershell
notification-hubs Notification Hubs Diagnostic Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-diagnostic-logs.md
Title: Azure Notification Hubs resource logs
description: Learn about the operational and diagnostics logs that are available for Azure Notification Hubs, and how to enable diagnostic settings. -+ Last updated 03/12/2024
notification-hubs Notification Hubs Enterprise Push Notification Architecture https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-enterprise-push-notification-architecture.md
editor: jwargo ms.assetid: 903023e9-9347-442a-924b-663af85e05c6-+ mobile-windows ms.devlang: csharp
notification-hubs Notification Hubs Gcm To Fcm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-gcm-to-fcm.md
Title: Azure Notification Hubs and the Google Firebase Cloud Messaging (FCM) mig
description: Describes how Azure Notification Hubs addresses the Google GCM to FCM migration using either REST APIs or SDKs. -+ Last updated 05/08/2024
notification-hubs Notification Hubs Ios Aspnet Register User From Backend To Push Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-ios-aspnet-register-user-from-backend-to-push-notification.md
-+ ios ms.devlang: objective-c
notification-hubs Notification Hubs Ios Xplat Localized Apns Push Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-ios-xplat-localized-apns-push-notification.md
editor: jwargo ms.assetid: 484914b5-e081-4a05-a84a-798bbd89d428-+ ios ms.devlang: objective-c
notification-hubs Notification Hubs Ios Xplat Segmented Apns Push Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-ios-xplat-segmented-apns-push-notification.md
-+ mobile-ios ms.devlang: objective-c
notification-hubs Notification Hubs Java Push Notification Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-java-push-notification-tutorial.md
-+ java ms.devlang: java
notification-hubs Notification Hubs Nodejs Push Notification Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-nodejs-push-notification-tutorial.md
-+ ms.devlang: javascript Last updated 08/23/2021
notification-hubs Notification Hubs Php Push Notification Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-php-push-notification-tutorial.md
-+ php ms.devlang: php
notification-hubs Notification Hubs Push Bing Spatial Data Geofencing Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-push-bing-spatial-data-geofencing-notification.md
editor: jwargo ms.assetid: f41beea1-0d62-4418-9ffc-c9d70607a1b7-+ mobile-windows-phone ms.devlang: csharp
notification-hubs Notification Hubs Push Notification Fixer https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-push-notification-fixer.md
description: Learn how to diagnose common issues with dropped notifications in A
-+ ms.devlang: csharp Last updated 06/08/2023
notification-hubs Notification Hubs Push Notification Http2 Token Authentication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-push-notification-http2-token-authentication.md
editor: jwargo -+ mobile-multiple ms.devlang: csharp
notification-hubs Notification Hubs Push Notification Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-push-notification-overview.md
editor: tjsomasundaram
ms.assetid: fcfb0ce8-0e19-4fa8-b777-6b9f9cdda178-+ multiple
notification-hubs Notification Hubs Push Notification Registration Management https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-push-notification-registration-management.md
-+ mobile-multiple ms.devlang: csharp
notification-hubs Notification Hubs Push Notification Security https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-push-notification-security.md
editor: jwargo -+ mobile-multiple Last updated 09/23/2019
notification-hubs Notification Hubs Python Push Notification Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-python-push-notification-tutorial.md
-+ python ms.devlang: php
notification-hubs Notification Hubs Sdks https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-sdks.md
editor: jwargo ms.assetid: 91188310-307a-11e9-b210-d663bd873d93-+ Last updated 02/14/2019
notification-hubs Notification Hubs Send Push Notifications Scheduled https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-send-push-notifications-scheduled.md
editor: jwargo ms.assetid: 6b718c75-75dd-4c99-aee3-db1288235c1a-+ mobile-android ms.devlang: csharp
notification-hubs Notification Hubs Tags Segment Push Message https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-tags-segment-push-message.md
editor: jwargo ms.assetid: 0fffb3bb-8ed8-4e0f-89e8-0de24a47f644-+ mobile-multiple ms.devlang: csharp
notification-hubs Notification Hubs Templates Cross Platform Push Messages https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-templates-cross-platform-push-messages.md
-+ mobile-multiple Last updated 02/16/2021
notification-hubs Notification Hubs Tls12 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-tls12.md
-+ mobile-multiple Last updated 04/29/2020
notification-hubs Notification Hubs Windows Notification Dotnet Push Xplat Segmented Wns https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-windows-notification-dotnet-push-xplat-segmented-wns.md
-+ mobile-windows ms.devlang: csharp
notification-hubs Notification Hubs Windows Store Dotnet Get Started Wns Push Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-windows-store-dotnet-get-started-wns-push-notification.md
-+ mobile-windows ms.devlang: csharp
notification-hubs Notification Hubs Windows Store Dotnet Xplat Localized Wns Push Notification https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/notification-hubs-windows-store-dotnet-xplat-localized-wns-push-notification.md
-+ mobile-windows ms.devlang: csharp
notification-hubs Private Link https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/private-link.md
description: Learn how to use the Private Link feature in Azure Notification Hub
Last updated 02/02/2024-+
notification-hubs Push Notification Updates Ios 13 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/push-notification-updates-ios-13.md
Last updated 10/16/2019 -+ ms.lastreviewed: 10/16/2019
notification-hubs Push Notifications Android Specific Devices Firebase Cloud Messaging https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/push-notifications-android-specific-devices-firebase-cloud-messaging.md
description: Learn how to use Notification Hubs to push notifications to specifi
-+ mobile-android ms.devlang: java
notification-hubs Push Notifications Android Specific Users Firebase Cloud Messaging https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/push-notifications-android-specific-users-firebase-cloud-messaging.md
description: Learn how to send push notifications to specific Android apps by us
-+ mobile-android ms.devlang: java
notification-hubs Samples Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/samples-powershell.md
editor: jwargo -+ Last updated 01/04/2019
notification-hubs Samples https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/samples.md
-+ Last updated 08/06/2020
notification-hubs Uwp React https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/uwp-react.md
Title: Send Azure Notification Hubs notifications to Android and iOS application
description: Learn about the cross-platform capabilities of Azure Notification Hubs. -+ Last updated 06/14/2021
notification-hubs Voip Apns https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/voip-apns.md
Last updated 3/23/2020 -+ # Optional fields. Don't forget to remove # if you need a field. #
notification-hubs Xamarin Notification Hubs Ios Push Notification Apns Get Started https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/xamarin-notification-hubs-ios-push-notification-apns-get-started.md
keywords: ios push notifications,push messages,push notifications,push message
-+ mobile-xamarin-ios ms.devlang: csharp
notification-hubs Xamarin Notification Hubs Push Notifications Android Gcm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/notification-hubs/xamarin-notification-hubs-push-notifications-android-gcm.md
description: In this tutorial, you learn how to use Azure Notification Hubs to s
-+ mobile-xamarin-android ms.devlang: csharp
operational-excellence Relocation App Gateway https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/operational-excellence/relocation-app-gateway.md
Last updated 04/03/2024-+ - subject-relocation
reliability Migrate App Gateway V2 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/reliability/migrate-app-gateway-v2.md
Title: Migrate Azure Application Gateway Standard and WAF v2 deployments to availability zone support description: Learn how to migrate your Azure Application Gateway and WAF deployments to availability zone support. -+ Last updated 07/28/2022
reliability Migrate Service Fabric https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/reliability/migrate-service-fabric.md
Title: Migrate an Azure Service Fabric cluster to availability zone support description: Learn how to migrate both managed and non-managed Azure Service Fabric clusters to availability zone support. -+ Last updated 03/23/2023
reliability Reliability Azure Container Apps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/reliability/reliability-azure-container-apps.md
description: Learn how to ensure application reliability in Azure Container Apps
-+ Last updated 10/23/2023
reliability Reliability Dns https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/reliability/reliability-dns.md
-+ Last updated 02/02/2024
reliability Reliability Notification Hubs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/reliability/reliability-notification-hubs.md
Title: Reliability in Azure Notification Hubs
description: Find out about reliability in Azure Notification Hubs. -+ Last updated 03/06/2024
reliability Reliability Traffic Manager https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/reliability/reliability-traffic-manager.md
-+ Last updated 02/06/2024
role-based-access-control Role Assignments https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/role-assignments.md
description: Learn about Azure role assignments in Azure role-based access contr
Previously updated : 06/27/2024 Last updated : 08/01/2024 # Understand Azure role assignments
For more information about conditions, see [What is Azure attribute-based access
> Azure role assignment integration with Privileged Identity Management is currently in PREVIEW. > See the [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) for legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
-If you have a Microsoft Entra ID P2 or Microsoft Entra ID Governance license, [Microsoft Entra Privileged Identity Management (PIM)](/entra/id-governance/privileged-identity-management/pim-configure) is integrated into role assignment steps. For example, you can assign roles to users for a limited period of time. You can also make users eligible for role assignments so that they must activate to use the role, such as request approval. Eligible role assignments provide just-in-time access to a role for a limited period of time. You can't create eligible role assignments for applications, service principals, or managed identities because they can't perform the activation steps. This capability is being deployed in stages, so it might not be available yet in your tenant or your interface might look different.
+If you have a Microsoft Entra ID P2 or Microsoft Entra ID Governance license, [Microsoft Entra Privileged Identity Management (PIM)](/entra/id-governance/privileged-identity-management/pim-configure) is integrated into role assignment steps. For example, you can assign roles to users for a limited period of time. You can also make users eligible for role assignments so that they must activate to use the role, such as request approval. Eligible role assignments provide just-in-time access to a role for a limited period of time. You can't create eligible role assignments for applications, service principals, or managed identities because they can't perform the activation steps. You can create eligible role assignments at management group, subscription, and resource group scope, but not at resource scope. This capability is being deployed in stages, so it might not be available yet in your tenant or your interface might look different.
The assignment type options available to you might vary depending or your PIM policy. For example, PIM policy defines whether permanent assignments can be created, maximum duration for time-bound assignments, roles activations requirements (approval, multifactor authentication, or Conditional Access authentication context), and other settings. For more information, see [Configure Azure resource role settings in Privileged Identity Management](/entra/id-governance/privileged-identity-management/pim-resource-roles-configure-role-settings).
role-based-access-control Transfer Subscription https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/role-based-access-control/transfer-subscription.md
Several Azure resources have a dependency on a subscription or a directory. Depe
| Azure SQL databases with Microsoft Entra authentication integration enabled | Yes | No | [Check Azure SQL databases with Microsoft Entra authentication](#list-azure-sql-databases-with-azure-ad-authentication) | You cannot transfer an Azure SQL database with Microsoft Entra authentication enabled to a different directory. For more information, see [Use Microsoft Entra authentication](/azure/azure-sql/database/authentication-aad-overview). | | Azure database for MySQL with Microsoft Entra authentication integration enabled | Yes | No | | You cannot transfer an Azure database for MySQL (Single and Flexible server) with Microsoft Entra authentication enabled to a different directory. | | Azure Storage and Azure Data Lake Storage Gen2 | Yes | Yes | | You must re-create any ACLs. |
-| Azure Files | Yes | Yes | | You must re-create any ACLs. |
+| Azure Files | Yes | In most scenarios | | You must re-create any ACLs. For storage accounts with Entra Kerberos authentication enabled, you must disable and re-enable Entra Kerberos authentication after the transfer. For Entra Domain Services, transferring to another Microsoft Entra directory where Entra Domain Services is not enabled is not supported. |
| Azure File Sync | Yes | Yes | | The storage sync service and/or storage account can be moved to a different directory. For more information, see [Frequently asked questions (FAQ) about Azure Files](../storage/files/storage-files-faq.md#azure-file-sync) | | Azure Managed Disks | Yes | Yes | | If you are using Disk Encryption Sets to encrypt Managed Disks with customer-managed keys, you must disable and re-enable the system-assigned identities associated with Disk Encryption Sets. And you must re-create the role assignments i.e. again grant required permissions to Disk Encryption Sets in the Key Vaults. | | Azure Kubernetes Service | Yes | No | | You cannot transfer your AKS cluster and its associated resources to a different directory. For more information, see [Frequently asked questions about Azure Kubernetes Service (AKS)](/azure/aks/faq) |
route-server Troubleshoot Route Server https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/route-server/troubleshoot-route-server.md
If you want to inspect your on-premises traffic using a firewall, you can force
10.0.0.0/16 is the address space of the virtual network and 10.0.1.0/27 is the address space of RouteServerSubnet. 10.0.2.1 is the IP address of the firewall.
+### I added a user-defined route (UDR) with next hop type as Virtual Network Gateway, but this UDR is not taking effect. Is this expected?
+
+Yes, this is expected behavior. User-defined routes with next hop type **Virtual Network Gateway** are not supported for subnets within Route Server's virtual network and peered virtual networks. However, if you want to configure your next hop to be a network virtual appliance (NVA) or the internet, adding a user-defined route with next hop type **VirtualAppliance** or **Internet** is supported.
+ ### Why do I lose connectivity after associating a service endpoint policy to the RouteServerSubnet or GatewaySubnet? If you associate a service endpoint policy to the RouteServerSubnet or GatewaySubnet, then communication may break between Azure's underlying management platform and these respective Azure services (Route Server and VPN/ExpressRoute gateway). This can cause these Azure resources to enter an unhealthy state, resulting in connectivity loss between your on-premises and Azure workloads.
search Cognitive Search Aml Skill https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/cognitive-search-aml-skill.md
- ignite-2023 - build-2024 Previously updated : 06/26/2024 Last updated : 08/05/2024 # AML skill in an Azure AI Search enrichment pipeline > [!IMPORTANT]
-> This skill is in public preview under [supplemental terms of use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). Preview REST APIs support this skill.
+> Support for indexer connections to the Azure AI Studio model catalog is in public preview under [supplemental terms of use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). Preview REST APIs support this skill.
The **AML** skill allows you to extend AI enrichment with a custom [Azure Machine Learning (AML)](../machine-learning/overview-what-is-azure-machine-learning.md) model. Once an AML model is [trained and deployed](../machine-learning/concept-azure-machine-learning-architecture.md#workspace), an **AML** skill integrates it into AI enrichment. Like other built-in skills, an **AML** skill has inputs and outputs. The inputs are sent to your deployed AML online endpoint as a JSON object, which outputs a JSON payload as a response along with a success status code. Your data is processed in the [Geo](https://azure.microsoft.com/explore/global-infrastructure/data-residency/) where your model is deployed. The response is expected to have the outputs specified by your **AML** skill. Any other response is considered an error and no enrichments are performed.
-The **AML** skill is a preview feature, but depending on the endpoint, you can call it in a skillset that targets a stable API version. For example, a skillset that's created using 2023-11-01 stable API can include an **AML** skill even though it's a preview feature.
+The **AML** skill can be called with the 2024-07-01 stable API version or the 2024-05-01-preview API version for connections to the model catalog in Azure AI Studio.
Starting in 2024-05-01-preview REST API and in the Azure portal (which also targets the 2024-05-01-preview), Azure AI Search introduced the [Azure AI Studio model catalog vectorizer](vector-search-vectorizer-azure-machine-learning-ai-studio-catalog.md) for query time connections to the model catalog in Azure AI Studio. If you want to use that vectorizer for queries, the **AML** skill is the *indexing counterpart* for generating embeddings using a model in the Azure AI Studio model catalog.
search Cognitive Search Attach Cognitive Services https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/cognitive-search-attach-cognitive-services.md
If you leave the property unspecified, your search service attempts to use the f
1. Create or update a skillset, specifying `cognitiveServices` section in the body of the [skillset request](/rest/api/searchservice/skillsets/create): ```http
-PUT https://[servicename].search.windows.net/skillsets/[skillset name]?api-version=2023-11-01
+PUT https://[servicename].search.windows.net/skillsets/[skillset name]?api-version=2024-07-01
api-key: [admin key] Content-Type: application/json {
Enrichments are billable operations. If you no longer need to call Azure AI serv
1. Remove the key in the body of the definition, and then send the request: ```http
- PUT https://[servicename].search.windows.net/skillsets/[skillset name]?api-version=2023-11-01
+ PUT https://[servicename].search.windows.net/skillsets/[skillset name]?api-version=2024-07-01
api-key: [admin key] Content-Type: application/json {
Billable built-in skills that make backend calls to Azure AI services include [E
Image extraction is an Azure AI Search operation that occurs when documents are cracked prior to enrichment. Image extraction is billable on all tiers, except for 20 free daily extractions on the free tier. Image extraction costs apply to image files inside blobs, embedded images in other files (PDF and other app files), and for images extracted using [Document Extraction](cognitive-search-skill-document-extraction.md). For image extraction pricing, see the [Azure AI Search pricing page](https://azure.microsoft.com/pricing/details/search/). > [!TIP]
-> To lower the cost of skillset processing, enable [incremental enrichment (preview)](cognitive-search-incremental-indexing-conceptual.md) to cache and reuse any enrichments that are unaffected by changes made to a skillset. Caching requires Azure Storage (see [pricing](https://azure.microsoft.com/pricing/details/storage/blobs/) but the cumulative cost of skillset execution is lower if existing enrichments can be reused, especially for skillsets that use image extraction and analysis.
+> To lower the cost of skillset processing, enable [incremental enrichment](cognitive-search-incremental-indexing-conceptual.md) to cache and reuse any enrichments that are unaffected by changes made to a skillset. Caching requires Azure Storage (see [pricing](https://azure.microsoft.com/pricing/details/storage/blobs/) but the cumulative cost of skillset execution is lower if existing enrichments can be reused, especially for skillsets that use image extraction and analysis.
## Example: Estimate costs
search Cognitive Search Incremental Indexing Conceptual https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/cognitive-search-incremental-indexing-conceptual.md
PUT https://[search service].search.windows.net/datasources/[data source name]?a
The purpose of the cache is to avoid unnecessary processing, but suppose you make a change to a skill that the indexer doesn't detect (for example, changing something in external code, such as a custom skill).
-In this case, you can use the [Reset Skills](/rest/api/searchservice/preview-api/reset-skills) to force reprocessing of a particular skill, including any downstream skills that have a dependency on that skill's output. This API accepts a POST request with a list of skills that should be invalidated and marked for reprocessing. After Reset Skills, follow with a [Run Indexer](/rest/api/searchservice/indexers/run) request to invoke the pipeline processing.
+In this case, you can use the [Reset Skills](/rest/api/searchservice/skillsets/reset-skills?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to force reprocessing of a particular skill, including any downstream skills that have a dependency on that skill's output. This API accepts a POST request with a list of skills that should be invalidated and marked for reprocessing. After Reset Skills, follow with a [Run Indexer](/rest/api/searchservice/indexers/run) request to invoke the pipeline processing.
## Re-cache specific documents
Skillsets and data sources can use the generally available version. In addition
+ [Reset Skills (api-version=2024-05-01-preview)](/rest/api/searchservice/skillsets/reset-skills?view=rest-searchservice-2024-05-01-preview&preserve-view=true)
-+ [Create or Update Skillset (api-version=2023-11-01)](/rest/api/searchservice/skillsets/create-or-update) (New URI parameter on the request)
++ [Create or Update Skillset (api-version=2024-07-01)](/rest/api/searchservice/skillsets/create-or-update) (New URI parameter on the request)
-+ [Create or Update Data Source (api-version=2023-11-01)](/rest/api/searchservice/data-sources/create-or-update), when called with a preview API version, provides a new parameter named "ignoreResetRequirement", which should be set to true when your update action shouldn't invalidate the cache. Use "ignoreResetRequirement" sparingly as it could lead to unintended inconsistency in your data that won't be detected easily.
++ [Create or Update Data Source (api-version=2024-07-01)](/rest/api/searchservice/data-sources/create-or-update), when called with a preview API version, provides a new parameter named "ignoreResetRequirement", which should be set to true when your update action shouldn't invalidate the cache. Use "ignoreResetRequirement" sparingly as it could lead to unintended inconsistency in your data that won't be detected easily. ## Next steps
search Cognitive Search Skill Azure Openai Embedding https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/cognitive-search-skill-azure-openai-embedding.md
- ignite-2023 - build-2024 Previously updated : 07/25/2024 Last updated : 08/05/2024 # Azure OpenAI Embedding skill
-> [!IMPORTANT]
-> This feature is in public preview under [Supplemental Terms of Use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). The [2023-10-01-preview REST API](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2023-10-01-preview&preserve-view=true) supports the first iteration of this feature. The [2024-05-01-preview REST API](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) adds more properties and supports more text embedding models on Azure OpenAI.
- The **Azure OpenAI Embedding** skill connects to a deployed embedding model on your [Azure OpenAI](/azure/ai-services/openai/overview) resource to generate embeddings during indexing. Your data is processed in the [Geo](https://azure.microsoft.com/explore/global-infrastructure/data-residency/) where your model is deployed.
-The [Import and vectorize data wizard](search-get-started-portal-import-vectors.md) in the Azure portal uses the **Azure OpenAI Embedding** skill to vectorize content. You can run the wizard and review the generated skillset to see how the wizard builds the skill for the text-embedding-ada-002 model.
+The [Import and vectorize data wizard](search-get-started-portal-import-vectors.md) in the Azure portal uses the **Azure OpenAI Embedding** skill to vectorize content. You can run the wizard and review the generated skillset to see how the wizard builds the skill for embedding models.
> [!NOTE] > This skill is bound to Azure OpenAI and is charged at the existing [Azure OpenAI pay-as-you go price](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/#pricing).
Parameters are case-sensitive.
| `apiKey` | The secret key used to access the model. If you provide a key, leave `authIdentity` empty. If you set both the `apiKey` and `authIdentity`, the `apiKey` is used on the connection. | | `deploymentId` | The name of the deployed Azure OpenAI embedding model. The model should be an embedding model, such as text-embedding-ada-002. See the [List of Azure OpenAI models](/azure/ai-services/openai/concepts/models) for supported models.| | `authIdentity` | A user-managed identity used by the search service for connecting to Azure OpenAI. You can use either a [system or user managed identity](search-howto-managed-identities-data-sources.md). To use a system manged identity, leave `apiKey` and `authIdentity` blank. The system-managed identity is used automatically. A managed identity must have [Cognitive Services OpenAI User](/azure/ai-services/openai/how-to/role-based-access-control#azure-openai-roles) permissions to send text to Azure OpenAI. |
-| `modelName` | This property is required if your skillset is created using the 2024-05-01-preview REST API. Set this property to the deployment name of an Azure OpenAI embedding model deployed on the provider specified through `resourceUri` and identified through `deploymentId`. Currently, the supported values are `text-embedding-ada-002`, `text-embedding-3-large`, and `text-embedding-3-small`. |
+| `modelName` | This property is required if your skillset is created using the 2024-05-01-preview or 2024-07-01 REST API. Set this property to the deployment name of an Azure OpenAI embedding model deployed on the provider specified through `resourceUri` and identified through `deploymentId`. Currently, the supported values are `text-embedding-ada-002`, `text-embedding-3-large`, and `text-embedding-3-small`. |
| `dimensions` | (Optional, introduced in the 2024-05-01-preview REST API). The dimensions of embeddings that you would like to generate if the model supports reducing the embedding dimensions. Supported ranges are listed below. Defaults to the maximum dimensions for each model if not specified. For skillsets created using the 2023-10-01-preview, dimensions are fixed at 1536. | ## Supported dimensions by `modelName`
search Cognitive Search Skill Textsplit https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/cognitive-search-skill-textsplit.md
- ignite-2023 Previously updated : 02/18/2024 Last updated : 08/05/2024 # Text split cognitive skill
Parameters are case-sensitive.
|--|-| | `textSplitMode` | Either `pages` or `sentences`. Pages have a configurable maximum length, but the skill attempts to avoid truncating a sentence so the actual length might be smaller. Sentences are a string that terminates at sentence-ending punctuation, such as a period, question mark, or exclamation point, assuming the language has sentence-ending punctuation. | | `maximumPageLength` | Only applies if `textSplitMode` is set to `pages`. This parameter refers to the maximum page length in characters as measured by `String.Length`. The minimum value is 300, the maximum is 50000, and the default value is 5000. The algorithm does its best to break the text on sentence boundaries, so the size of each chunk might be slightly less than `maximumPageLength`. |
-| `pageOverlapLength` | Only applies if `textSplitMode` is set to `pages`. Each page starts with this number of characters from the end of the previous page. If this parameter is set to 0, there's no overlapping text on successive pages. This parameter is supported in [2023-10-01-Preview](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2023-10-01-preview&tabs=HTTP#splitskill&preserve-view=true) and newer preview REST APIs, and in Azure SDK beta packages that have been updated to support integrated vectorization. This [example](#example-for-chunking-and-vectorization) includes the parameter. |
-| `maximumPagesToTake` | Only applies if `textSplitMode` is set to `pages`. Number of pages to return. The default is 0, which means to return all pages. You should set this value if only a subset of pages are needed. This parameter is supported in [2023-10-01-Preview](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2023-10-01-preview&tabs=HTTP#splitskill&preserve-view=true) and newer preview REST APIs, and in Azure SDK beta packages that have been updated to support integrated vectorization. This [example](#example-for-chunking-and-vectorization) includes the parameter.|
+| `pageOverlapLength` | Only applies if `textSplitMode` is set to `pages`. Each page starts with this number of characters from the end of the previous page. If this parameter is set to 0, there's no overlapping text on successive pages. This parameter is supported in [2024-07-01](/rest/api/searchservice/skillsets/create-or-update) and newer preview REST APIs, and in Azure SDK packages that have been updated to support integrated vectorization. This [example](#example-for-chunking-and-vectorization) includes the parameter. |
+| `maximumPagesToTake` | Only applies if `textSplitMode` is set to `pages`. Number of pages to return. The default is 0, which means to return all pages. You should set this value if only a subset of pages are needed. This parameter is supported in [2024-07-01](/rest/api/searchservice/skillsets/create-or-update) and newer preview REST APIs, and in Azure SDK packages that have been updated to support integrated vectorization. This [example](#example-for-chunking-and-vectorization) includes the parameter.|
| `defaultLanguageCode` | (optional) One of the following language codes: `am, bs, cs, da, de, en, es, et, fr, he, hi, hr, hu, fi, id, is, it, ja, ko, lv, no, nl, pl, pt-PT, pt-BR, ru, sk, sl, sr, sv, tr, ur, zh-Hans`. Default is English (en). A few things to consider: <ul><li>Providing a language code is useful to avoid cutting a word in half for nonwhitespace languages such as Chinese, Japanese, and Korean.</li><li>If you don't know the language in advance (for example, if you're using the [LanguageDetectionSkill](cognitive-search-skill-language-detection.md) to detect language), we recommend the `en` default. </li></ul> | ## Skill Inputs
Parameters are case-sensitive.
## Example for chunking and vectorization
-This example is for integrated vectorization, currently in preview. It adds preview-only parameters to the sample definition, and shows the resulting output.
+This example is for integrated vectorization.
+ `pageOverlapLength`: Overlapping text is useful in [data chunking](vector-search-how-to-chunk-documents.md) scenarios because it preserves continuity between chunks generated from the same document.
search Cognitive Search Skill Vision Vectorize https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/cognitive-search-skill-vision-vectorize.md
- build-2024 - references_regions Previously updated : 06/14/2024 Last updated : 08/05/2024
-# Azure AI Vision multimodal embeddings skill
+# Azure AI Vision multimodal embeddings skill
> [!IMPORTANT]
-> This feature is in public preview under [Supplemental Terms of Use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). The [2024-05-01-Preview REST API](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-Preview&preserve-view=true) supports this feature.
+> This skill is in public preview under [Supplemental Terms of Use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). The [2024-05-01-Preview REST API](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-Preview&preserve-view=true) supports this feature.
The **Azure AI Vision multimodal embeddings** skill uses Azure AI Vision's [multimodal embeddings API](../ai-services/computer-vision/concept-image-retrieval.md) to generate embeddings for image or text input.
Parameters are case-sensitive.
| Inputs | Description | ||-|
-| `modelVersion` | (Required) The model version to be passed to the Azure AI Vision multimodal embeddings API for generating embeddings. It is important that all embeddings stored in a given index field are generated using the same `modelVersion`. For information about version support for this model refer to [multimodal embeddings](../ai-services/computer-vision/concept-image-retrieval.md#what-are-vector-embeddings).|
+| `modelVersion` | (Required) The model version to be passed to the Azure AI Vision multimodal embeddings API for generating embeddings. It's important that all embeddings stored in a given index field are generated using the same `modelVersion`. For information about version support for this model, refer to [multimodal embeddings](../ai-services/computer-vision/concept-image-retrieval.md#what-are-vector-embeddings).|
## Skill inputs
The output resides in memory. To send this output to a field in the search index
] ```
-For mapping image embeddings to the index, you will need to use the [Index Projections](index-projections-concept-intro.md) feature. The payload for `indexProjections` might look something like this:
+For mapping image embeddings to the index, you'll need to use the [Index Projections](index-projections-concept-intro.md) feature. The payload for `indexProjections` might look something like this:
```json "indexProjections": {
search Cognitive Search Tutorial Blob https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/cognitive-search-tutorial-blob.md
Call [Create Data Source](/rest/api/searchservice/create-data-source) to set the
```http ### Create a data source
-POST {{baseUrl}}/datasources?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/datasources?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
Call [Create Skillset](/rest/api/searchservice/skillsets/create) to specify whic
```http ### Create a skillset
-POST {{baseUrl}}/skillsets?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/skillsets?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
The largest component of an index is the fields collection, where data type and
```http ### Create an index
-POST {{baseUrl}}/indexes?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
Expect this step to take several minutes to complete. Even though the data set i
```http ### Create and run an indexer
-POST {{baseUrl}}/indexers?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexers?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
To find out whether the indexer is still running, call [Get Indexer Status](/res
```http ### Get Indexer Status (wait several minutes for the indexer to complete)
-GET {{baseUrl}}/indexers/cog-search-demo-idxr/status?api-version=2023-11-01 HTTP/1.1
+GET {{baseUrl}}/indexers/cog-search-demo-idxr/status?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}} ```
Now that you've created an index that contains AI-generated content, call [Searc
```http ### Query the index\
-POST {{baseUrl}}/indexes/cog-search-demo-idx/docs/search?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes/cog-search-demo-idx/docs/search?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
Filters can help you narrow results to items of interest:
```http ### Filter by organization
-POST {{baseUrl}}/indexes/cog-search-demo-idx/docs/search?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes/cog-search-demo-idx/docs/search?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
search Hybrid Search How To Query https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/hybrid-search-how-to-query.md
- ignite-2023 Previously updated : 06/12/2024 Last updated : 08/05/2024 # Create a hybrid query in Azure AI Search
Last updated 06/12/2024
In many cases, [per benchmark tests](https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/azure-ai-search-outperforming-vector-search-with-hybrid/ba-p/3929167), hybrid queries with semantic ranking return the most relevant results.
-To improve relevance:
+To improve relevance, use these parameters:
-+ New parameters [maxTextRecallSize and countAndFacetMode(preview)](#set-maxtextrecallsize-and-countandfacetmode-preview) give you more control over text inputs into a hybrid query.
++ [vector.queries.weight](vector-search-how-to-query.md#vector-weighting) lets you set the relative weight of the vector query. This feature is particularly useful in complex queries where two or more distinct result sets need to be combined, as is the case for hybrid search. This feature is generally available.
-+ New [vector weighting](vector-search-how-to-query.md#vector-weighting-preview) lets you set the relative weight of the vector query. This feature is particularly useful in complex queries where two or more distinct result sets need to be combined, as is the case for hybrid search.
++ [hybridsearch.maxTextRecallSize and countAndFacetMode (preview)](#set-maxtextrecallsize-and-countandfacetmode-preview) give you more control over text inputs into a hybrid query. This feature requires a preview API version. ## Prerequisites
To improve relevance:
+ (Optional) If you want [semantic ranking](semantic-how-to-configure.md), your search service must be Basic tier or higher, with [semantic ranking enabled](semantic-how-to-enable-disable.md).
-+ (Optional) If you want text-to-vector conversion of a query string (currently in preview), [create and assign a vectorizer](vector-search-how-to-configure-vectorizer.md) to vector fields in the search index.
++ (Optional) If you want text-to-vector conversion of a query string, [create and assign a vectorizer](vector-search-how-to-configure-vectorizer.md) to vector fields in the search index. ## Choose an API or tool
-+ [**2023-11-01**](/rest/api/searchservice/documents/search-post) stable version
-+ [**2023-10-01-preview**](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2023-10-01-preview&preserve-view=true), adds integrated vectorization to the vector side of a hybrid query
-+ [**2024-03-01-preview**](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-03-01-preview&preserve-view=true), adds narrow data types and scalar quantization to the vector side of a hybrid query
-+ [**2024-05-01-preview**](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true) adds `maxTextRecallSize` and `countAndFacetMode` specifially for hybrid search
++ [**2024-07-01**](/rest/api/searchservice/documents/search-post) stable version or a recent preview API version if you're using [maxTextRecallSize and countAndFacetMode(preview)](#set-maxtextrecallsize-and-countandfacetmode-preview). + Search Explorer in the Azure portal (targets 2024-05-01-preview behaviors) + Newer stable or beta packages of the Azure SDKs (see change logs for SDK feature support) ## Run a hybrid query in Search Explorer
-1. In [Search Explorer](search-explorer.md), make sure the API version is **2023-10-01-preview** or later.
+1. In [Search Explorer](search-explorer.md), make sure the API version is **2024-07-01** or newer preview API versions.
1. Under **View**, select **JSON view**. 1. Replace the default query template with a hybrid query, such as the one starting on line 539 for the [vector quickstart example](vector-search-how-to-configure-vectorizer.md#try-a-vectorizer-with-sample-data). For brevity, the vector is truncated in this article.
- A hybrid query has a text query specified in `search`, and a vectory query specified under `vectorQueries.vector`.
+ A hybrid query has a text query specified in `search`, and a vector query specified under `vectorQueries.vector`.
The text query and vector query should be equivalent or at least not conflict. If the queries are different, you don't get the benefit of hybrid.
Results are returned in plain text, including vectors in fields marked as `retri
The following example shows a hybrid query configuration. ```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-11-01
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
api-key: {{admin-api-key}}
This example adds a filter, which is applied to the `filterable` nonvector fields of the search index. ```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-11-01
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
api-key: {{admin-api-key}}
Assuming that you [enabled semantic ranking](semantic-how-to-enable-disable.md) and your index definition includes a [semantic configuration](semantic-how-to-query-request.md), you can formulate a query that includes vector search and keyword search, with semantic ranking over the merged result set. Optionally, you can add captions and answers. ```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-11-01
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
api-key: {{admin-api-key}}
Here's the last query in the collection. It's the same semantic hybrid query as the previous example, but with a filter. ```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-11-01
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
api-key: {{admin-api-key}}
## Set maxTextRecallSize and countAndFacetMode (preview)
-This section explains how to adjust the inputs to a hybrid query by controlling the amount BM25-ranked results that flow to the hybrid ranking model. Controlling over the BM25-ranked input gives you more options for relevance tuning in hybrid scenarios.
+This section explains how to adjust the inputs to a hybrid query by controlling the amount BM25-ranked results that flow to the hybrid ranking model. Controlling over the BM25-ranked input gives you more options for relevance tuning in hybrid scenarios.
+
+We recommend preview REST API version [2024-05-01-preview](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true).
> [!TIP]
-> Another option to consider is a supplemental or replacement technique, is [vector weighting](vector-search-how-to-query.md#vector-weighting-preview), which increases the importance of vector queries in the request.
+> Another option to consider is a supplemental or replacement technique, is [vector weighting](vector-search-how-to-query.md#vector-weighting), which increases the importance of vector queries in the request.
1. Use [Search - POST](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true) or [Search - GET](/rest/api/searchservice/documents/search-get?view=rest-searchservice-2024-05-01-preview&preserve-view=true) in 2024-05-01-preview to specify these parameters.
This section explains how to adjust the inputs to a hybrid query by controlling
+ `countAndFacetMode` reports the counts for the BM25-ranked results (and for facets if you're using them). The default is all documents that match the query. Optionally, you can scope "count" to the `maxTextRecallSize`.
-1. Reduce `maxTextRecallSize` if vector similarity search is generally outperforming the text-side of the the hybrid query.
+1. Reduce `maxTextRecallSize` if vector similarity search is generally outperforming the text-side of the hybrid query.
1. Raise `maxTextRecallSize` if you have a large index, and the default isn't capturing a sufficient number of results. With a larger BM25-ranked result set, you can also set `top`, `skip`, and `next` to retrieve portions of those results.
search Hybrid Search Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/hybrid-search-overview.md
Hybrid search is predicated on having a search index that contains fields of var
A representative hybrid query might be as follows (notice the vector is trimmed for brevity): ```http
-POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2023-11-01
+POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2024-07-01
content-type: application/JSON { "count": true,
search Hybrid Search Ranking https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/hybrid-search-ranking.md
Semantic ranking doesn't participate in RRF. Its score (`@search.rerankerScore`)
## Weighted scores
-Starting in 2024-05-01-preview, you can [weight vector queries](vector-search-how-to-query.md#vector-weighting-preview) to increase or decrease their importance in a hybrid query.
+Using 2024-07-01 and newer preview API versions, you can [weight vector queries](vector-search-how-to-query.md#vector-weighting) to increase or decrease their importance in a hybrid query.
Recall that when computing RRF for a certain document, the search engine looks at the rank of that document for each result set where it shows up. Assume a document shows up in three separate search results, where the results are from two vector queries and one text BM25-ranked query. The position of the document varies in each result.
The following diagram illustrates a hybrid query that invokes keyword and vector
A query that generates the previous workflow might look like this: ```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-11-01
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
search Index Add Scoring Profiles https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/index-add-scoring-profiles.md
The following definition shows a simple profile named "geo". This example boosts
To use this scoring profile, your query is formulated to specify scoringProfile parameter in the request. If you're using the REST API, queries are specified through GET and POST requests. In the following example, "currentLocation" has a delimiter of a single dash (`-`). It's followed by longitude and latitude coordinates, where longitude is a negative value. ```http
-GET /indexes/hotels/docs?search+inn&scoringProfile=geo&scoringParameter=currentLocation--122.123,44.77233&api-version=2023-11-01
+GET /indexes/hotels/docs?search+inn&scoringProfile=geo&scoringParameter=currentLocation--122.123,44.77233&api-version=2024-07-01
``` Notice the syntax differences when using POST. In POST, "scoringParameters" is plural and it's an array. ```http
-POST /indexes/hotels/docs&api-version=2023-11-01
+POST /indexes/hotels/docs&api-version=2024-07-01
{ "search": "inn", "scoringProfile": "geo",
search Index Add Suggesters https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/index-add-suggesters.md
In a search application, client code should use a library like [jQuery UI Autoco
API usage is illustrated in the following call to the Autocomplete REST API. There are two takeaways from this example. First, as with all queries, the operation is against the documents collection of an index and the query includes a `search` parameter, which in this case provides the partial query. Second, you must add `suggesterName` to the request. If a suggester isn't defined in the index, calls to autocomplete or suggestions fail. ```http
-POST /indexes/myxboxgames/docs/autocomplete?search&api-version=2023-11-01
+POST /indexes/myxboxgames/docs/autocomplete?search&api-version=2024-07-01
{ "search": "minecraf", "suggesterName": "sg"
search Index Projections Concept Intro https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/index-projections-concept-intro.md
- ignite-2023 Previously updated : 06/25/2024 Last updated : 08/05/2024 # Index projections in Azure AI Search
-> [!Important]
-> Index projections are in public preview under [supplemental terms of use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). It's available through the Azure portal, preview REST APIs, Azure portal, and beta client libraries that have been updated to include the feature.
- *Index projections* are a component of a skillset definition that defines the shape of a secondary index, supporting a one-to-many index pattern, where content from an enrichment pipeline can target multiple indexes. Index projections take AI-enriched content generated by an [enrichment pipeline](cognitive-search-concept-intro.md) and index it into a secondary index (different from the one that an indexer targets by default) on your search service. Index projections also allow you to reshape the data before indexing it, in a way that uniquely allows you to separate an array of enriched items into multiple search documents in the target index, otherwise known as "one-to-many" indexing. "One-to-many" indexing is useful for data chunking scenarios, where you might want a primary index for unchunked content and a secondary index for chunked.
Because index projections effectively generate "child" documents for each "paren
### [**REST**](#tab/kstore-rest)
-You can use `2023-10-01-Preview` or newer preview REST APIs to create index projections through additions to a skillset. We recommend the latest preview API.
+Index projections are generally available. We recommend the most recent stable API.
-+ [Create Skillset (api-version=2024-05-01-preview)](/rest/api/searchservice/skillsets/create?view=rest-searchservice-2024-05-01-preview&preserve-view=true)
-+ [Create or Update Skillset (api-version=2024-05-01-preview)](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true)
++ [Create Skillset (api-version=2024-07-01)](/rest/api/searchservice/skillsets/create) ### [**.NET**](#tab/kstore-csharp)
search Index Ranking Similarity https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/index-ranking-similarity.md
BM25 ranking provides two parameters for tuning the relevance score calculation.
1. Use a [Create or Update Index](/rest/api/searchservice/create-index) request to set BM25 parameters: ```http
- PUT [service-name].search.windows.net/indexes/[index-name]?api-version=2023-11-01&allowIndexDowntime=true
+ PUT [service-name].search.windows.net/indexes/[index-name]?api-version=2024-07-01&allowIndexDowntime=true
{ "similarity": { "@odata.type": "#Microsoft.Azure.Search.BM25Similarity",
The following links describe the Similarity property in the Azure SDKs.
You can also use the [REST API](/rest/api/searchservice/create-index). The following example creates a new index with the "similarity" property set to BM25: ```http
-PUT [service-name].search.windows.net/indexes/[index name]?api-version=2023-11-01
+PUT [service-name].search.windows.net/indexes/[index name]?api-version=2024-07-01
{ "name": "indexName", "fields": [
search Index Similarity And Scoring https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/index-similarity-and-scoring.md
By default, the score of a document is calculated based on statistical propertie
If you prefer to compute the score based on the statistical properties across all shards, you can do so by adding `scoringStatistics=global` as a [query parameter](/rest/api/searchservice/search-documents) (or add `"scoringStatistics": "global"` as a body parameter of the [query request](/rest/api/searchservice/search-documents)). ```http
-POST https://[service name].search.windows.net/indexes/hotels/docs/search?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexes/hotels/docs/search?api-version=2024-07-01
{ "search": "<query string>", "scoringStatistics": "global"
POST https://[service name].search.windows.net/indexes/hotels/docs/search?api-ve
Using `scoringStatistics` will ensure that all shards in the same replica provide the same results. That said, different replicas may be slightly different from one another as they're always getting updated with the latest changes to your index. In some scenarios, you may want your users to get more consistent results during a "query session". In such scenarios, you can provide a `sessionId` as part of your queries. The `sessionId` is a unique string that you create to refer to a unique user session. ```http
-POST https://[service name].search.windows.net/indexes/hotels/docs/search?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexes/hotels/docs/search?api-version=2024-07-01
{ "search": "<query string>", "sessionId": "<string>"
search Knowledge Store Concept Intro https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/knowledge-store-concept-intro.md
For .NET developers, use the [KnowledgeStore Class](/dotnet/api/azure.search.doc
Once enriched content exists in storage, any tool or technology that connects to Azure Storage can be used to explore, analyze, or consume the contents. The following list is a start:
-+ [Storage Explorer](../storage/blobs/quickstart-storage-explorer.md) or Storage browser (preview) in Azure portal to view enriched document structure and content. Consider this as your baseline tool for viewing knowledge store contents.
++ [Storage Explorer](../storage/blobs/quickstart-storage-explorer.md) or Storage browser in the Azure portal to view enriched document structure and content. Consider this as your baseline tool for viewing knowledge store contents. + [Power BI](knowledge-store-connect-power-bi.md) for reporting and analysis.
search Knowledge Store Create Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/knowledge-store-create-portal.md
In the **Overview** page, open the **Indexers** tab in the middle of the page, a
1. In the Azure portal, [open the Storage account](https://portal.azure.com/#blade/HubsExtension/BrowseResourceBlade/resourceType/Microsoft.Storage%2storageAccounts/) used to create the knowledge store.
-1. In the storage account's left navigation pane, select **Storage browser (preview)** to view the new tables.
+1. In the storage account's left navigation pane, select **Storage browser** to view the new tables.
You should see three tables, one for each projection that was offered in the "Save enrichments" section of the "Add enrichments" page.
search Knowledge Store Create Rest https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/knowledge-store-create-rest.md
A valid API key establishes trust, on a per request basis, between the applicati
```http ### Create a new index
- POST {{baseUrl}}/indexes?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/indexes?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
A valid API key establishes trust, on a per request basis, between the applicati
```http ### Create a data source
- POST {{baseUrl}}/datasources?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/datasources?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
A skillset defines enrichments (skills) and your knowledge store. [Create Skills
```http ### Create a skillset
- POST {{baseUrl}}/skillsets?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/skillsets?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
A skillset defines enrichments (skills) and your knowledge store. [Create Skills
```http ### Create indexer
- POST {{baseUrl}}/indexers?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/indexers?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
After you send each request, the search service should respond with a 201 succes
```http ### Get Indexer Status (wait several minutes for the indexer to complete)
-GET {{baseUrl}}/indexers/hotel-reviews-kstore-idxr/status?api-version=2023-11-01 HTTP/1.1
+GET {{baseUrl}}/indexers/hotel-reviews-kstore-idxr/status?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}} ```
After several minutes, you can query the index to inspect the content. Even if y
```http ### Query the index (indexer status must be "success" before querying the index)
-POST {{baseUrl}}/indexes/hotel-reviews-kstore-idxr/docs/search?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes/hotel-reviews-kstore-idxr/docs/search?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
search Knowledge Store Projection Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/knowledge-store-projection-overview.md
Recall that projections are exclusive to knowledge stores, and aren't used to st
1. While in Azure Storage, familiarize yourself with existing content in containers and tables so that you choose nonconflicting names for the projections. A knowledge store is a loose collection of tables and containers. Consider adopting a naming convention to keep track of related objects.
-1. In Azure AI Search, [enable enrichment caching (preview)](search-howto-incremental-index.md) in the indexer and then [run the indexer](search-howto-run-reset-indexers.md) to execute the skillset and populate the cache. This is a preview feature, so be sure to use the preview REST API (api-version=2020-06-30-preview or later) on the indexer request. Once the cache is populated, you can modify projection definitions in a knowledge store free of charge (as long as the skills themselves aren't modified).
+1. In Azure AI Search, [enable enrichment caching (preview)](search-howto-incremental-index.md) in the indexer and then [run the indexer](search-howto-run-reset-indexers.md) to execute the skillset and populate the cache. This is a preview feature, so be sure to use the preview REST API on the indexer request. Once the cache is populated, you can modify projection definitions in a knowledge store free of charge (as long as the skills themselves aren't modified).
1. In your code, all projections are defined solely in a skillset. There are no indexer properties (such as field mappings or output field mappings) that apply to projections. Within a skillset definition, you'll focus on two areas: knowledgeStore property and skills array.
search Knowledge Store Projections Examples https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/knowledge-store-projections-examples.md
Recall that projections are defined under the "knowledgeStore" property of a ski
If you need more background before getting started, review [this check list](knowledge-store-projection-overview.md#checklist-for-getting-started) for tips and workflow. > [!TIP]
-> When developing projections, [enable enrichment caching (preview)](search-howto-incremental-index.md) so that you can reuse existing enrichments while editing projection definitions. Enrichment caching is a preview feature, so be sure to use the preview REST API (api-version=2020-06-30-preview or later) on the indexer request. Without caching, simple edits to a projection will result in a full reprocess of enriched content. By caching the enrichments, you can iterate over projections without incurring any skillset processing charges.
+> When developing projections, [enable enrichment caching (preview)](search-howto-incremental-index.md) so that you can reuse existing enrichments while editing projection definitions. Enrichment caching is a preview feature, so be sure to use the preview REST API on the indexer request. Without caching, simple edits to a projection will result in a full reprocess of enriched content. By caching the enrichments, you can iterate over projections without incurring any skillset processing charges.
## Requirements
search Monitor Azure Cognitive Search Data Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/monitor-azure-cognitive-search-data-reference.md
The following example illustrates a resource log that includes common properties
| Resource | String | Resource ID. For example: `/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Search/searchServices/<your-search-service-name>` | | Category | String | "OperationLogs". This value is a constant. OperationLogs is the only category used for resource logs. | | OperationName | String | The name of the operation (see the [full list of operations](#resource-log-search-ops)). An example is `Query.Search` |
-| OperationVersion | String | The api-version used on the request. For example: `2023-11-01` |
+| OperationVersion | String | The api-version used on the request. For example: `2024-07-01` |
| ResultType | String |"Success". Other possible values: Success or Failure | | ResultSignature | Int | An HTTP result code. For example: `200` | | DurationMS | Int | Duration of the operation in milliseconds. |
The following properties are specific to Azure AI Search.
| Description_s | String | The operation's endpoint. For example: `GET /indexes('content')/docs` | | Documents_d | Int | Number of documents processed. | | IndexName_s | String | Name of the index associated with the operation. |
-| Query_s | String | The query parameters used in the request. For example: `?search=beach access&$count=true&api-version=2023-11-01` |
+| Query_s | String | The query parameters used in the request. For example: `?search=beach access&$count=true&api-version=2024-07-01` |
<a name="resource-log-search-ops"></a>
search Query Lucene Syntax https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/query-lucene-syntax.md
To use full Lucene syntax, set the queryType to `full` and pass in a query expre
The following example is a search request constructed using the full syntax. This particular example shows in-field search and term boosting. It looks for hotels where the category field contains the term `budget`. Any documents containing the phrase `"recently renovated"` are ranked higher as a result of the term boost value (3). ```http
-POST /indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST /indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "queryType": "full", "search": "category:budget AND \"recently renovated\"^3",
search Query Simple Syntax https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/query-simple-syntax.md
Although the simple parser is based on the [Apache Lucene Simple Query Parser](h
This example shows a simple query, distinguished by `"queryType": "simple"` and valid syntax. Although query type is set below, it's the default and can be omitted unless you're reverting from an alternative type. The following example is a search over independent terms, with a requirement that all matching documents include "pool". ```http
-POST https://{{service-name}}.search.windows.net/indexes/hotel-rooms-sample/docs/search?api-version=2023-11-01
+POST https://{{service-name}}.search.windows.net/indexes/hotel-rooms-sample/docs/search?api-version=2024-07-01
{ "queryType": "simple", "search": "budget hotel +pool",
search Retrieval Augmented Generation Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/retrieval-augmented-generation-overview.md
Since you probably know what kind of content you want to search over, consider t
<!-- | audio | vectors <sup>1</sup> | Vectorized audio content can be [indexed as vector fields](vector-search-how-to-create-index.md) in your index. Vectorization of audio content often requires intermediate processing that converts audio to text, and then text to vecctors. [Azure AI Speech](/azure/ai-services/speech-service/overview) and [OpenAI Whisper](https://platform.openai.com/docs/guides/speech-to-text) are two examples for this scenario. | | video | vectors <sup>1</sup> | Vectorized video content can be [indexed as vector fields](vector-search-how-to-create-index.md) in your index. Similar to audio, vectorization of video content also requires extra processing, such as breaking up the video into frames or smaller chunks for vectorization. | -->
- <sup>1</sup> The generally available functionality of [vector support](vector-search-overview.md) requires that you call other libraries or models for data chunking and vectorization. However, [integrated vectorization (preview)](vector-search-integrated-vectorization.md) embeds these steps. For code samples showing both approaches, see [azure-search-vectors repo](https://github.com/Azure/azure-search-vector-samples).
+ <sup>1</sup> The generally available functionality of [vector support](vector-search-overview.md) requires that you call other libraries or models for data chunking and vectorization. However, [integrated vectorization](vector-search-integrated-vectorization.md) embeds these steps. For code samples showing both approaches, see [azure-search-vectors repo](https://github.com/Azure/azure-search-vector-samples).
<sup>2</sup> [Skills](cognitive-search-working-with-skillsets.md) are built-in support for [AI enrichment](cognitive-search-concept-intro.md). For OCR and Image Analysis, the indexing pipeline makes an internal call to the Azure AI Vision APIs. These skills pass an extracted image to Azure AI for processing, and receive the output as text that's indexed by Azure AI Search.
In comparison and benchmark testing, hybrid queries with text and vector fields,
### Example code of an Azure AI Search query for RAG scenarios
-The following code is copied from the [retrievethenread.py](https://github.com/Azure-Samples/azure-search-openai-demo/blob/main/app/backend/approaches/retrievethenread.py) file from a demo site. It produces `content` for the LLM from hybrid query search results. You can write a simpler query, but this example is inclusive of vector search and keyword search with semantic reranking and spell check. In the demo, this query is used to get initial content.
+The following code is copied from the [retrievethenread.py](https://github.com/Azure-Samples/azure-search-openai-demo/blob/main/app/backend/approaches/retrievethenread.py) file from a demo site. It produces `sources_content` for the LLM from hybrid query search results. You can write a simpler query, but this example is inclusive of vector search and keyword search with semantic reranking and spell check. In the demo, this query is used to get initial content.
```python # Use semantic ranker if requested and if retrieval mode is text or hybrid (vectors + text)
if len(history) > 0:
else: search = user_input
-# Alternatively simply use search_client.search(q, top=3) if not using semantic ranking
+# Alternatively simply use search_client.search(q, top=3) if not using semantic search
print("Searching:", search) print("-") filter = "category ne '{}'".format(exclude_category.replace("'", "''")) if exclude_category else None
search Search Add Autocomplete Suggestions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-add-autocomplete-suggestions.md
The remainder of this article is focused on queries and client code. It uses Jav
Elements of a request include one of the search-as-you-type APIs, a partial query, and a suggester. The following script illustrates components of a request, using the Autocomplete REST API as an example. ```http
-POST /indexes/myxboxgames/docs/autocomplete?search&api-version=2023-11-01
+POST /indexes/myxboxgames/docs/autocomplete?search&api-version=2024-07-01
{ "search": "minecraf", "suggesterName": "sg"
search Search Api Migration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-api-migration.md
- ignite-2023 - build-2024 Previously updated : 07/19/2024 Last updated : 08/05/2024 # Upgrade to the latest REST API in Azure AI Search Use this article to migrate data plane calls to newer versions of the [**Search REST APIs**](/rest/api/searchservice/).
-+ [`2023-11-01`](/rest/api/searchservice/search-service-api-versions#2023-11-01) is the most recent stable version.
++ [`2024-07-01`](/rest/api/searchservice/search-service-api-versions#2024-07-01) is the most recent stable version. + [`2024-05-01-preview`](/rest/api/searchservice/search-service-api-versions#2024-05-01-preview) is the most recent preview API version.
-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 preview features, see [vector code samples](https://github.com/Azure/azure-search-vector-samples) and [What's New](whats-new.md).
+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).
We recommend upgrading API versions in succession, working through each version until you get to the newest one.
Azure AI Search breaks backward compatibility as a last resort. Upgrade is neces
## How to upgrade
-The `api-version` parameter is specified in the request header. 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).
+1. Review the [release notes](/rest/api/searchservice/search-service-api-versions) for each API version.
-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 it's 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.
+1. Update the `api-version` parameter, specified in the request header, to a newer version.
+
+ 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).
+
+ 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.
+
+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.
## Breaking change for client code that reads connection information
Effective March 29, 2024 and applicable to all [supported REST APIs](/rest/api/s
+ If you need to retrieve admin or query API keys for your search service, use the [Management REST APIs](search-security-api-keys.md?tabs=rest-find#find-existing-keys).
-+ If you need to retrieve connection strings of another Azure resource such as Azure Storage or Azure Cosmos DB, use the APIs of that resource and published guidance to obtain the information.
++ If you need to retrieve connection strings of another Azure resource such as Azure Storage or Azure Cosmos DB, use the APIs of that resource and published guidance to obtain the information. ## Breaking change for semantic ranking
Effective March 29, 2024 and applicable to all [supported REST APIs](/rest/api/s
See [Migrate from preview version](semantic-how-to-configure.md#migrate-from-preview-versions) to transition your code to use `semanticConfiguration`.
+## Upgrade to 2024-07-01
+
+[`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).
+
+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.
+
+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`.
+ ## Upgrade to 2024-05-01-preview [`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.
If you're upgrading from `2023-10-01-preview`, there are no breaking changes. Ho
1. Search your codebase for `vectorFilterMode` references.
-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.
+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.
+
+## Upgrade to 2023-11-01
+
+[`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 ranking, vector index and query support.
+
+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).
+
+To use the new stable release, change the API version and test your code.
## Upgrade to 2023-10-01-preview
search Search Api Preview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-api-preview.md
- build-2024 Previously updated : 06/25/2024 Last updated : 08/05/2024 # Preview features in Azure AI Search
-This article identifies all data plane and control plane features in public preview. This list is helpful for checking feature status. It also provides usage guidance and reminders to always upgrade to newer preview API versions as they roll out.
+This article identifies all data plane and control plane features in public preview. This list is helpful for checking feature status. It also explains how to call a preview REST API.
-Preview API versions are cumulative and roll up to newer Preview versions. We recommend always using the latest preview APIs for full access to all preview features.
+Preview API versions are cumulative and roll up to the next preview. We recommend always using the latest preview APIs for full access to all preview features.
Preview features are removed from this list if they're retired or transition to general availability. For announcements regarding general availability and retirement, see [Service Updates](https://azure.microsoft.com/updates/?product=search) or [What's New](whats-new.md).
Preview features are removed from this list if they're retired or transition to
|Feature&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Category | Description | Availability | |||-||
-| [**Scalar quantization**](vector-search-how-to-configure-compression-storage.md#option-1-configure-scalar-quantization) | Index | Compress vector index size in memory and on disk using built-in scalar quantization. | [Create or Update Index (preview)](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to add a `compressions` section to a vector profile. |
-| [**Narrow data types**](vector-search-how-to-configure-compression-storage.md#option-2-assign-narrow-data-types-to-vector-fields) | Index | Assign a smaller data type on vector fields, assuming incoming data is of that data type. | [Create or Update Index (preview)](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to specify a vector field definition. [Binary vector support](vector-search-how-to-index-binary-data.md) is added in 2024-05-01-preview.|
-| [**stored property**](vector-search-how-to-configure-compression-storage.md#option-3-set-the-stored-property-to-remove-retrievable-storage) | Index | Boolean that reduces storage of vector indexes by *not* storing retrievable vectors. | [Create or Update Index (preview)](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to set `stored` on a vector field. |
-| [**Vectorizers**](vector-search-integrated-vectorization.md) | Queries | Text-to-vector conversion during query execution. | [Create or Update Index (preview)](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to define a `vectorizer`. [Search POST (preview)](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true) for `vectorQueries`. Vectorizers should be paired with an equivalent skill that supports integrated vectorization during indexing. Skills used for embeddings during indexing include AzureOpenAIEmbedding, Azure AI Vision multimodal, AML for models in the Azure AI Studio model catalog. There are vectorizers that correspond to each one of these embedding skills. Always use the same embedding model for both queries and indexing. |
-| [**Integrated vectorization**](vector-search-integrated-vectorization.md) | Index, skillset | Skills-driven data chunking and embedding during indexing. | [Create or Update Skillset (preview)](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) for AzureOpenAIEmbedding skill and the data chunking properties of the Text Split skill. |
-| [**Import and vectorize data**](search-get-started-portal-import-vectors.md) | Azure portal | A wizard that creates a full indexing pipeline that includes data chunking and vectorization. The wizard creates all of the objects and configuration settings. | Available on all search services, in all regions. |
-| [**AzureOpenAIEmbedding skill**](cognitive-search-skill-azure-openai-embedding.md) | Applied AI (skills) | A new skill type that calls Azure OpenAI embedding model to generate embeddings during queries and indexing. | [Create or Update Skillset (preview)](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true). Also available in the portal through the [Import and vectorize data wizard](search-get-started-portal-import-vectors.md). |
| [**Azure AI Vision multimodal embedding skill**](cognitive-search-skill-vision-vectorize.md) | Applied AI (skills) | A new skill type that calls Azure AI Vision multimodal API to generate embeddings for text or images during indexing. | [Create or Update Skillset (preview)](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true). |
-| [**Text Split skill**](cognitive-search-skill-textsplit.md) | Applied AI (skills) | Text Split has two new chunking-related properties in preview: `maximumPagesToTake`, `pageOverlapLength`. | [Create or Update Skillset (preview)](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) adds support for the preview properties. These properties are also used in the portal through the [Import and vectorize data wizard](search-get-started-portal-import-vectors.md). |
| [**Azure Machine Learning (AML) skill**](cognitive-search-aml-skill.md) | Applied AI (skills) | AML skill integrates an inferencing endpoint from Azure Machine Learning. | [Create or Update Skillset (preview)](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true). In previous preview APIs, it supports connections to deployed custom models in an AML workspace. Starting in the 2024-05-01-preview, you can use this skill in workflows that connect to embedding models in the Azure AI Studio model catalog. It's also available in the portal, in skillset design, assuming Azure AI Search and Azure Machine Learning services are deployed in the same subscription. |
-| [**Incremental enrichment**](cognitive-search-incremental-indexing-conceptual.md) | Applied AI (skills) | Adds caching to an enrichment pipeline, allowing you to reuse existing output if a targeted modification, such as an update to a skillset or another object, doesn't change the content. Caching applies only to enriched documents produced by a skillset.| [Create or Update Indexer (preview)](/rest/api/searchservice/indexers/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true). |
-| [**Index projections**](index-projections-concept-intro.md) | Applied AI (skills) | A component of a skillset definition that defines the shape of a secondary index, supporting a one-to-many index pattern, where content from an enrichment pipeline can target multiple indexes.| [Create or Update Skillset (preview)](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true). Also available in the portal through the [Import and vectorize data wizard](search-get-started-portal-import-vectors.md). |
+| [**Incremental enrichment cache**](cognitive-search-incremental-indexing-conceptual.md) | Applied AI (skills) | Adds caching to an enrichment pipeline, allowing you to reuse existing output if a targeted modification, such as an update to a skillset or another object, doesn't change the content. Caching applies only to enriched documents produced by a skillset.| [Create or Update Indexer (preview)](/rest/api/searchservice/indexers/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true). |
| [**OneLake files indexer**](search-how-to-index-onelake-files.md) | Indexer data source | New data source for extracting searchable data and metadata data from a [lakehouse](/fabric/onelake/create-lakehouse-onelake) on top of [OneLake](/fabric/onelake/onelake-overview) | [Create or Update Data Source (preview)](/rest/api/searchservice/data-sources/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true). | | [**Azure Files indexer**](search-file-storage-integration.md) | Indexer data source | New data source for indexer-based indexing from [Azure Files](https://azure.microsoft.com/services/storage/files/) | [Create or Update Data Source (preview)](/rest/api/searchservice/data-sources/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true). | | [**SharePoint Online indexer**](search-howto-index-sharepoint-online.md) | Indexer data source | New data source for indexer-based indexing of SharePoint content. | [Sign up](https://aka.ms/azure-cognitive-search/indexer-preview) to enable the feature. [Create or Update Data Source (preview)](/rest/api/searchservice/data-sources/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) or the Azure portal. |
Preview features are removed from this list if they're retired or transition to
| [**speller**](speller-how-to-add.md) | Query | Optional spelling correction on query term inputs for simple, full, and semantic queries. | [Search Documents (preview)](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true). | | [**Normalizers**](search-normalizers.md) | Query | Normalizers provide simple text preprocessing: consistent casing, accent removal, and ASCII folding, without invoking the full text analysis chain.| [Search Documents (preview)](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true). | | [**featuresMode parameter**](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true) | Relevance (scoring) | Relevance score expansion to include details: per field similarity score, per field term frequency, and per field number of unique tokens matched. You can consume these data points in [custom scoring solutions](https://github.com/Azure-Samples/search-ranking-tutorial). | [Search Documents (preview)](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true).|
+| [**vectorQueries.threshold parameter**](vector-search-how-to-query.md#vector-weighting) | Relevance (scoring) | Exclude low-scoring search result based on a minimum score. | [Search Documents (preview)](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true). |
+| [**hybridSearch.maxTextRecallSize and countAndFacetMode parameters**](hybrid-search-how-to-query.md#set-maxtextrecallsize-and-countandfacetmode-preview) | Relevance (scoring) | adjust the inputs to a hybrid query by controlling the amount BM25-ranked results that flow to the hybrid ranking model. | [Search Documents (preview)](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true). |
| [**moreLikeThis**](search-more-like-this.md) | Query | Finds documents that are relevant to a specific document. This feature has been in earlier previews. | [Search Documents (preview)](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&preserve-view=true). | ## Control plane preview features
Preview features are removed from this list if they're retired or transition to
Each Azure SDK team releases beta packages on their own timeline. Check the change log for mentions of new features in beta packages:
-+ [Change log for Azure SDK for .NET](https://github.com/Azure/azure-sdk-for-net/blob/Azure.Search.Documents_11.5.0-beta.5/sdk/search/Azure.Search.Documents/CHANGELOG.md)
-+ [Change log for Azure SDK for Java](https://github.com/Azure/azure-sdk-for-jav)
-+ [Change log for Azure SDK for JavaScript](https://github.com/Azure/azure-sdk-for-js/blob/%40azure/search-documents_11.3.3/sdk/search/search-documents/CHANGELOG.md)
-+ [Change log for Azure SDK for Python](https://github.com/Azure/azure-sdk-for-python/blob/azure-search-documents_11.3.0/sdk/search/azure-search-documents/CHANGELOG.md).
++ [Change log for Azure SDK for .NET](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/search/Azure.Search.Documents/CHANGELOG.md)++ [Change log for Azure SDK for Java](https://github.com/Azure/azure-sdk-for-jav)++ [Change log for Azure SDK for JavaScript](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/search/search-documents/CHANGELOG.md)++ [Change log for Azure SDK for Python](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/search/azure-search-documents/CHANGELOG.md). ## Using preview features
search Search Blob Storage Integration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-blob-storage-integration.md
You can control which blobs are indexed, and which are skipped, by the blob's fi
Include specific file extensions by setting `"indexedFileNameExtensions"` to a comma-separated list of file extensions (with a leading dot). Exclude specific file extensions by setting `"excludedFileNameExtensions"` to the extensions that should be skipped. If the same extension is in both lists, it will be excluded from indexing. ```http
-PUT /indexers/[indexer name]?api-version=2023-11-01
+PUT /indexers/[indexer name]?api-version=2024-07-01
{ "parameters" : { "configuration" : {
search Search Create App Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-create-app-portal.md
When the index is ready to use, move on to the next step.
1. Choose *realestate-us-sample-index* from the list of existing indexes.
-1. On the index page, at the top, select **Create demo app (preview)** to start the wizard.
+1. On the index page, at the top, select **Create demo app** to start the wizard.
1. On the first wizard page, select **Enable Cross Origin Resource Sharing (CORS)** to add CORS support to your index definition. This step is optional, but your local web app won't connect to the remote index without it.
search Search File Storage Integration https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-file-storage-integration.md
In the [search index](search-what-is-an-index.md), add fields to accept the cont
1. [Create or update an index](/rest/api/searchservice/indexes/create-or-update) to define search fields that will store file content and metadata. ```http
- POST /indexes?api-version=2023-11-01
+ POST /indexes?api-version=2024-07-01
{ "name" : "my-search-index", "fields": [
Once the index and data source have been created, you're ready to create the ind
1. [Create or update an indexer](/rest/api/searchservice/indexers/create-or-update) by giving it a name and referencing the data source and target index: ```http
- POST /indexers?api-version=2023-11-01
+ POST /indexers?api-version=2024-07-01
{ "name" : "my-file-indexer", "dataSourceName" : "my-file-datasource",
An indexer runs automatically when it's created. You can prevent this by setting
To monitor the indexer status and execution history, send a [Get Indexer Status](/rest/api/searchservice/indexers/get-status) request: ```http
-GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2023-11-01
+GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] ```
search Search Filters https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-filters.md
One of the limits on a filter expression is the maximum size limit of the reques
The following examples represent prototypical filter definitions in several APIs. ```http
-POST https://[service name].search.windows.net/indexes/hotels/docs/search?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexes/hotels/docs/search?api-version=2024-07-01
{ "search": "*", "filter": "Rooms/any(room: room/BaseRate lt 150.0)",
search Search Get Started Portal Image Search https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-get-started-portal-image-search.md
Previously updated : 06/14/2024 Last updated : 08/05/2024 - references_regions # Quickstart: Search for images by using Search Explorer in the Azure portal
-> [!IMPORTANT]
-> Image vectors are supported in stable API versions, but the wizard and vectorizers are in preview under [Supplemental Terms of Use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). By default, the wizard targets the [2024-05-01-Preview REST API](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true).
- This quickstart shows you how to get started with image search by using the **Import and vectorize data** wizard in the Azure portal. It also shows how to use Search Explorer to run image-based queries. Sample data consists of image files in the [azure-search-sample-data](https://github.com/Azure-Samples/azure-search-sample-data/tree/main/unsplash-images) repo, but you can use different images and still follow the walkthrough.
Sample data consists of image files in the [azure-search-sample-data](https://gi
The service tier determines how many blobs you can index. We used the Free tier to create this walkthrough and limited the content to 10 JPG files.
-+ Azure Storage to store image files as blobs. Use Azure Blob Storage, a standard performance (general-purpose v2) account. Access tiers can be hot, cool, and cold.
-
- Don't use Azure Data Lake Storage Gen2 (a storage account with a hierarchical namespace). This version of the wizard doesn't support Data Lake Storage Gen2.
++ Azure Storage to store image files as blobs. Use Azure Blob Storage or Azure Data Lake Storage Gen2 (a storage account with a hierarchical namespace), a standard performance (general-purpose v2) account. Access tiers can be hot, cool, and cold. All of the preceding resources must have public access enabled so that the portal nodes can access them. Otherwise, the wizard fails. After the wizard runs, you can enable firewalls and private endpoints on the integration components for security. For more information, see [Secure connections in the import wizards](search-import-data-portal.md#secure-connections).
When the wizard completes the configuration, it creates the following objects:
+ A data source connection to Blob Storage.
-+ An index with vector fields, text fields, vectorizers, vector profiles, and vector algorithms. You can't modify the default index during the wizard workflow. Indexes conform to the [2024-05-01-preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true).
++ An index with vector fields, text fields, vectorizers, vector profiles, and vector algorithms. You can't modify the default index during the wizard workflow. Indexes conform to the [2024-05-01-preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) so that you can use preview features. + A skillset with the following five skills:
search Search Get Started Portal Import Vectors https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-get-started-portal-import-vectors.md
- build-2024 Previously updated : 07/19/2024 Last updated : 08/05/2024 # Quickstart: Vectorize text and images by using the Azure portal
-> [!IMPORTANT]
-> The **Import and vectorize data** wizard is in public preview under [Supplemental Terms of Use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). By default, it targets the [2024-05-01-Preview REST API](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true).
-
-This quickstart helps you get started with [integrated vectorization (preview)](vector-search-integrated-vectorization.md) by using the **Import and vectorize data** wizard in the Azure portal. The wizard chunks your content and calls an embedding model to vectorize content during indexing and for queries.
+This quickstart helps you get started with [integrated vectorization](vector-search-integrated-vectorization.md) by using the **Import and vectorize data** wizard in the Azure portal. The wizard chunks your content and calls an embedding model to vectorize content during indexing and for queries.
Key points about the wizard:
-+ Source data is either Azure Blob Storage or OneLake files and shortcuts.
++ Source data is either Azure Blob Storage, Azure Data Lake Storage (ADLS) Gen2, or OneLake files and shortcuts. + Document parsing mode is the default (one search document per blob or file). + Index schema is nonconfigurable. It provides vector and nonvector fields for chunked data. + Chunking is nonconfigurable. The effective settings are:
Key points about the wizard:
+ [Azure AI Search service](search-create-service-portal.md) in the same region as Azure AI. We recommend the Basic tier or higher.
-+ [Azure Blob Storage](/azure/storage/common/storage-account-overview) or a [OneLake lakehouse](search-how-to-index-onelake-files.md).
++ [Azure Blob Storage](/azure/storage/common/storage-account-create), [Azure Data Lake Storage (ADLS) Gen2](/azure/storage/blobs/create-data-lake-storage-account) (a storage account with a hierarchical namespace), or a [OneLake lakehouse](search-how-to-index-onelake-files.md).
- Azure Storage must be a standard performance (general-purpose v2) account. Access tiers can be hot, cool, and cold. Don't use Azure Data Lake Storage Gen2 (a storage account with a hierarchical namespace). This version of the wizard doesn't support Data Lake Storage Gen2.
+ Azure Storage must be a standard performance (general-purpose v2) account. Access tiers can be hot, cool, and cold.
+ An embedding model on an Azure AI platform. [Deployment instructions](#set-up-embedding-models) are in this article.
This section points you to data that works for this quickstart.
1. On the left pane, under **Access control**, assign the [Storage Blob Data Reader](search-howto-managed-identities-data-sources.md#assign-a-role) role to the search service identity. Or, get a connection string to the storage account from the **Access keys** page.
+1. Optionally, synchronize the deletions in your container with deletions in the search index. These next steps allow you to configure the indexer for deletion detection:
+
+ 1. [Enable soft delete](/azure/storage/blobs/soft-delete-blob-enable?tabs=azure-portal#enable-blob-soft-delete-hierarchical-namespace) on your storage account.
+
+ 1. If you're using [native soft delete](search-howto-index-changed-deleted-blobs.md#native-blob-soft-delete), no further steps are required on Azure Storage.
+
+ 1. Otherwise, [add custom metadata](search-howto-index-changed-deleted-blobs.md#soft-delete-strategy-using-custom-metadata) that an indexer can scan to determine which blobs are marked for deletion. Give your custom property a descriptive name. For example, you could name the property "IsDeleted", set to false. Do this for every blob in the container. Later, when you want to delete the blob, change the property to true. For more information, see [Change and delete detection when indexing from Azure Storage](search-howto-index-changed-deleted-blobs.md)
+
+### [ADLS Gen2](#tab/sample-data-adlsgen2)
+
+1. Sign in to the [Azure portal](https://portal.azure.com/) with your Azure account, and go to your Azure Storage account.
+
+1. You can confirm that you have Data Lake Storage by checking the **Properties** tab on the **Overview** page.
+
+ :::image type="content" source="media/search-get-started-portal-import-vectors/data-lake-storage.png" alt-text="Screenshot of the storage account properties page showing Data Lake Storage.":::
+
+1. On the left pane, under **Data Storage**, select **Containers**.
+
+1. Create a new container and then upload the [health-plan PDF documents](https://github.com/Azure-Samples/azure-search-sample-data/tree/main/health-plan) used for this quickstart.
+
+1. On the left pane, under **Access control**, assign the [Storage Blob Data Reader](search-howto-managed-identities-data-sources.md#assign-a-role) role to the search service identity. Or, get a connection string to the storage account from the **Access keys** page.
+
+1. Optionally, synchronize the deletions in your container with deletions in the search index. These next steps allow you to configure the indexer for deletion detection:
+
+ 1. [Enable soft delete](/azure/storage/blobs/soft-delete-blob-enable?tabs=azure-portal#enable-blob-soft-delete-hierarchical-namespace) on your storage account.
+
+ 1. [Add custom metadata](search-howto-index-changed-deleted-blobs.md#soft-delete-strategy-using-custom-metadata) that an indexer can scan to determine which blobs are deleted. Give your custom property a descriptive name. For example, you could name the property "IsDeleted", set to false. Do this for every blob in the container. Later, when you want to delete the blob, change the property to true. For more information, see [Change and delete detection when indexing from Azure Storage](search-howto-index-changed-deleted-blobs.md)
+ ### [OneLake](#tab/sample-data-onelake) 1. Sign in to [Power BI](https://powerbi.com/) and [create a workspace](/fabric/data-engineering/tutorial-lakehouse-get-started).
The next step is to connect to a data source to use for the search index.
1. Specify whether you want [deletion detection](search-howto-index-changed-deleted-blobs.md) support. On subsequent indexing runs, the search index is updated to remove any search documents based on soft-deleted blobs on Azure Storage.
- + You're prompted to choose either **Native blob soft delete** or **Soft delete using custom data**.
- + Your blob container must have deletion detection enabled before you run the wizard.
- + [Enable soft delete](/azure/storage/blobs/soft-delete-blob-overview) in Azure Storage, or [add custom metadata](search-howto-index-changed-deleted-blobs.md#soft-delete-strategy-using-custom-metadata) to your blobs that indexing recognizes as a deletion flag.
- + If you choose **Soft delete using custom data**, you're prompted to provide the metadata property name-value pair.
+ + Blobs support either **Native blob soft delete** or **Soft delete using custom data**.
+ + You must have previously [enabled soft delete](/azure/storage/blobs/soft-delete-blob-overview) on Azure Storage, and optionally [added custom metadata](search-howto-index-changed-deleted-blobs.md#soft-delete-strategy-using-custom-metadata) that indexing can recognize as a deletion flag. For more information about these steps, see [Prepare sample data](#prepare-sample-data).
+ + If you configured your blobs for **soft delete using custom data**, provide the metadata property name-value pair in this step. We recommend "IsDeleted". If "IsDeleted" is set to true on a blob, the indexer drops the corresponding search document on the next indexer run.
+
+ The wizard doesn't check Azure Storage for valid settings or throw an error if the requirements aren't met. Instead, deletion detection doesn't work, and your search index is likely to collect orphaned documents over time.
+
+ :::image type="content" source="media/search-get-started-portal-import-vectors/data-source-blob.png" alt-text="Screenshot of the data source page with deletion detection options.":::
+
+1. Specify whether you want your search service to [connect to Azure Storage using its managed identity](search-howto-managed-identities-storage.md).
+
+ + You're prompted to choose either a system-managed or user-managed identity.
+ + The identity should have a **Storage Blob Data Reader** role on Azure Storage.
+ + Don't skip this step. A connection error occurs during indexing if the wizard can't connect to Azure Storage.
+
+1. Select **Next**.
+
+### [ADLS Gen2](#tab/connect-data-adlsgen2)
+
+1. On the **Set up your data connection** page, select **Azure Data Lake**.
+
+1. Specify the Azure subscription.
+
+1. Choose the storage account and container that provide the data.
+
+1. Specify whether you want [deletion detection](search-howto-index-changed-deleted-blobs.md) support. On subsequent indexing runs, the search index is updated to remove any search documents based on soft-deleted blobs on Azure Storage.
+
+ + ADLS Gen2 indexers on Azure AI Search support the **Soft delete using custom data** approach only.
+ + You must have previously [enabled soft delete](/azure/storage/blobs/soft-delete-blob-overview) on Azure Storage and [added custom metadata](search-howto-index-changed-deleted-blobs.md#soft-delete-strategy-using-custom-metadata) that indexing can recognize as a deletion flag. For more information about these steps, see [Prepare sample data](#prepare-sample-data).
+ + Provide the metadata property you created for deletion detection. We recommend "IsDeleted". If "IsDeleted" is set to true on a blob, the indexer drops the corresponding search document on the next indexer run.
+
+ The wizard doesn't check Azure Storage for valid settings or throw an error if the requirements aren't met. Instead, deletion detection doesn't work, and your search index is likely to collect orphaned documents over time.
+
+ :::image type="content" source="media/search-get-started-portal-import-vectors/data-source-data-lake-storage.png" alt-text="Screenshot of the data source page with deletion detection options.":::
1. Specify whether you want your search service to [connect to Azure Storage using its managed identity](search-howto-managed-identities-storage.md). + You're prompted to choose either a system-managed or user-managed identity. + The identity should have a **Storage Blob Data Reader** role on Azure Storage.
- + Do not skip this option. A connection error occurs during indexing if the wizard can't connect to Azure Storage.
+ + Don't skip this step. A connection error occurs during indexing if the wizard can't connect to Azure Storage.
1. Select **Next**.
search Search Get Started Powershell https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-get-started-powershell.md
All requests require an API key on every request sent to your service. Having a
1. Create a `$url` object that specifies the service's indexes collection. Replace the service name (`YOUR-SEARCH-SERVICE-NAME`) with a valid search service. ```powershell
- $url = "https://<YOUR-SEARCH-SERVICE-NAME>.search.windows.net/indexes?api-version=2023-11-01&`$select=name"
+ $url = "https://<YOUR-SEARCH-SERVICE-NAME>.search.windows.net/indexes?api-version=2024-07-01&`$select=name"
``` 1. Run `Invoke-RestMethod` to send a GET request to the service and verify the connection. Add `ConvertTo-Json` so that you can view the responses sent back from the service.
This index is named `hotels-quickstart` and has the field definitions you see in
1. Set the URI to the indexes collection on your service and the `hotels-quickstart` index. ```powershell
- $url = "https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart?api-version=2023-11-01"
+ $url = "https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart?api-version=2024-07-01"
``` 1. Run the command with `$url`, `$headers`, and `$body` to create the index on the service.
To push documents, use an HTTP POST request to your index's URL endpoint. The RE
1. Set the endpoint to the `hotels-quickstart` docs collection and include the index operation (`indexes/hotels-quickstart/docs/index`). ```powershell
- $url = "https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs/index?api-version=2023-11-01"
+ $url = "https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs/index?api-version=2024-07-01"
``` 1. Run the command with `$url`, `$headers`, and `$body` to load documents into the `hotels-quickstart` index.
Be sure to use single quotation marks on search `$urls`. Query strings include `
This string executes an empty search (`search=*`), returning an unranked list (search score = 1.0) of arbitrary documents. By default, Azure AI Search returns 50 matches at a time. As structured, this query returns an entire document structure and values. Add `$count=true` to get a count of all documents in the results. ```powershell
- $url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2023-11-01&search=*&$count=true'
+ $url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2024-07-01&search=*&$count=true'
``` 1. Run the command to send the `$url` to the service.
Try a few other query examples to get a feel for the syntax. You can do a string
# Query example 1 # Search the entire index for the terms 'restaurant' and 'wifi' # Return only the HotelName, Description, and Tags fields
-$url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2023-11-01&search=restaurant wifi&$count=true&$select=HotelName,Description,Tags'
+$url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2024-07-01&search=restaurant wifi&$count=true&$select=HotelName,Description,Tags'
# Query example 2 # Apply a filter to the index to find hotels rated 4 or higher # Returns the HotelName and Rating. Two documents match.
-$url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2023-11-01&search=*&$filter=Rating gt 4&$select=HotelName,Rating'
+$url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2024-07-01&search=*&$filter=Rating gt 4&$select=HotelName,Rating'
# Query example 3 # Take the top two results, and show only HotelName and Category in the results
-$url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2023-11-01&search=boutique&$top=2&$select=HotelName,Category'
+$url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2024-07-01&search=boutique&$top=2&$select=HotelName,Category'
# Query example 4 # Sort by a specific field (Address/City) in ascending order
-$url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2023-11-01&search=pool&$orderby=Address/City asc&$select=HotelName, Address/City, Tags, Rating'
+$url = 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/hotels-quickstart/docs?api-version=2024-07-01&search=pool&$orderby=Address/City asc&$select=HotelName, Address/City, Tags, Rating'
``` ## Clean up resources
search Search Get Started Rest https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-get-started-rest.md
If you're not familiar with the REST client for Visual Studio Code, this section
@apiKey = PUT-YOUR-SEARCH-SERVICE-API-KEY-HERE ### List existing indexes by name
- GET {{baseUrl}}/indexes?api-version=2023-11-01&$select=name HTTP/1.1
+ GET {{baseUrl}}/indexes?api-version=2024-07-01&$select=name HTTP/1.1
Content-Type: application/json api-key: {{apiKey}} ```
If you're not familiar with the REST client for Visual Studio Code, this section
@token = PUT-YOUR-PERSONAL-IDENTITY-TOKEN-HERE ### List existing indexes by name
- GET {{baseUrl}}/indexes?api-version=2023-11-01&$select=name HTTP/1.1
+ GET {{baseUrl}}/indexes?api-version=2024-07-01&$select=name HTTP/1.1
Content-Type: application/json Authorization: Bearer {{token}} ```
Add a second request to your `.rest` file. [Create Index (REST)](/rest/api/searc
```http ### Create a new index
- POST {{baseUrl}}/indexes?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/indexes?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json Authorization: Bearer {{token}}
The URI is extended to include the `docs` collections and `index` operation.
```http ### Upload documents
- POST {{baseUrl}}/indexes/hotels-quickstart/docs/index?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/indexes/hotels-quickstart/docs/index?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json Authorization: Bearer {{token}}
The URI is extended to include a query expression, which is specified by using t
```http ### Run a query
- POST {{baseUrl}}/indexes/hotels-quickstart/docs/search?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/indexes/hotels-quickstart/docs/search?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json Authorization: Bearer {{token}}
You can also use [Get Statistics](/rest/api/searchservice/indexes/get-statistics
```http ### Get index statistics
- GET {{baseUrl}}/indexes/hotels-quickstart/stats?api-version=2023-11-01 HTTP/1.1
+ GET {{baseUrl}}/indexes/hotels-quickstart/stats?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json Authorization: Bearer {{token}} ```
You can also try this `DELETE` command:
```http ### Delete an index
-DELETE {{baseUrl}}/indexes/hotels-quickstart?api-version=2023-11-01 HTTP/1.1
+DELETE {{baseUrl}}/indexes/hotels-quickstart?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}} ```
search Search Get Started Vector https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-get-started-vector.md
- ignite-2023 Previously updated : 07/04/2024 Last updated : 08/05/2024 # Quickstart: Vector search by using REST
In Azure AI Search, a [vector store](vector-store.md) has an index schema that d
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin. > [!NOTE]
-> The stable **2023-11-01** REST API version depends on external solutions for data chunking and embedding. If you want to evaluate the [built-in data chunking and vectorization (public preview)](vector-search-integrated-vectorization.md) features, try the [**Import and vectorize data** wizard](search-get-started-portal-import-vectors.md) for an end-to-end walkthrough.
+> This quickstart omits the vectorization step and provides embeddings in sample documents. If you want to add [built-in data chunking and vectorization](vector-search-integrated-vectorization.md) over your own content, try the [**Import and vectorize data** wizard](search-get-started-portal-import-vectors.md) for an end-to-end walkthrough.
## Prerequisites
search Search How To Load Search Index https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-how-to-load-search-index.md
A search service accepts JSON documents that conform to the index schema. A sear
+ Plain text content is obtainable from alphanumeric fields in the external data source, metadata that's useful in search scenarios, or enriched content created by a [skillset](cognitive-search-working-with-skillsets.md) (skills can extract or infer textual descriptions from images and unstructured content).
-+ Vector content is vectorized using an [external embedding model](vector-search-how-to-generate-embeddings.md) or [integrated vectorization (preview)](vector-search-integrated-vectorization.md) using Azure AI Search features that integrate with applied AI.
++ Vector content is vectorized using an [external embedding model](vector-search-how-to-generate-embeddings.md) or [integrated vectorization](vector-search-integrated-vectorization.md) using Azure AI Search features that integrate with applied AI. You can prepare these documents yourself, but if content resides in a [supported data source](search-indexer-overview.md#supported-data-sources), running an [indexer](search-indexer-overview.md) or using an Import wizard can automate document retrieval, JSON serialization, and indexing.
In the Azure portal, use the [import wizards](search-import-data-portal.md) to c
:::image type="content" source="medi.png" alt-text="Screenshot of the Import data command" border="true":::
- You can follow these links to review the workflow: [Quickstart: Create an Azure AI Search index](search-get-started-portal.md) and [Quickstart: Integrated vectorization (preview)](search-get-started-portal-import-vectors.md).
+ You can follow these links to review the workflow: [Quickstart: Create an Azure AI Search index](search-get-started-portal.md) and [Quickstart: Integrated vectorization](search-get-started-portal-import-vectors.md).
1. After the wizard is finished, use [Search Explorer](search-explorer.md) to check for results.
In the Azure portal, use the [import wizards](search-import-data-portal.md) to c
1. Formulate a POST call specifying the index name, the "docs/index" endpoint, and a request body that includes the `@search.action` parameter. ```http
- POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] {
In the Azure portal, use the [import wizards](search-import-data-portal.md) to c
1. [Look up the documents](/rest/api/searchservice/documents/get) you just added as a validation step: ```http
- GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2023-11-01
+ GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2024-07-01
``` When the document key or ID is new, **null** becomes the value for any field that is unspecified in the document. For actions on an existing document, updated values replace the previous values. Any fields that weren't specified in a "merge" or "mergeUpload" are left intact in the search index.
search Search Howto Connecting Azure Sql Database To Azure Search Using Indexers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-connecting-azure-sql-database-to-azure-search-using-indexers.md
The data source definition specifies the data to index, credentials, and policie
1. [Create data source](/rest/api/searchservice/create-data-source) or [Update data source](/rest/api/searchservice/update-data-source) to set its definition: ```http
- POST https://myservice.search.windows.net/datasources?api-version=2023-11-01
+ POST https://myservice.search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json api-key: admin-key
In a [search index](search-what-is-an-index.md), add fields that correspond to t
1. [Create or update an index](/rest/api/searchservice/create-index) to define search fields that will store data: ```http
- POST https://[service name].search.windows.net/indexes?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexes?api-version=2024-07-01
Content-Type: application/json api-key: [Search service admin key] {
Once the index and data source have been created, you're ready to create the ind
1. [Create or update an indexer](/rest/api/searchservice/create-indexer) by giving it a name and referencing the data source and target index: ```http
- POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json api-key: [search service admin key] {
An indexer runs automatically when it's created. You can prevent this by setting
To monitor the indexer status and execution history, send a [Get Indexer Status](/rest/api/searchservice/get-indexer-status) request: ```http
-GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2023-11-01
+GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] ```
Database requirements:
Change detection policies are added to data source definitions. To use this policy, create or update your data source like this: ```http
-POST https://myservice.search.windows.net/datasources?api-version=2023-11-01
+POST https://myservice.search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json api-key: admin-key {
The high water mark column must meet the following requirements:
Change detection policies are added to data source definitions. To use this policy, create or update your data source like this: ```http
-POST https://myservice.search.windows.net/datasources?api-version=2023-11-01
+POST https://myservice.search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json api-key: admin-key {
search Search Howto Create Indexers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-create-indexers.md
Change detection logic is built into the data platforms. How an indexer supports
Indexers keep track of the last document it processed from the data source through an internal *high water mark*. The marker is never exposed in the API, but internally the indexer keeps track of where it stopped. When indexing resumes, either through a scheduled run or an on-demand invocation, the indexer references the high water mark so that it can pick up where it left off.
-If you need to clear the high water mark to reindex in full, you can use [Reset Indexer](/rest/api/searchservice/reset-indexer). For more selective reindexing, use [Reset Skills](/rest/api/searchservice/preview-api/reset-skills) or [Reset Documents](/rest/api/searchservice/preview-api/reset-documents). Through the reset APIs, you can clear internal state, and also flush the cache if you enabled [incremental enrichment](search-howto-incremental-index.md). For more background and comparison of each reset option, see [Run or reset indexers, skills, and documents](search-howto-run-reset-indexers.md).
+If you need to clear the high water mark to reindex in full, you can use [Reset Indexer](/rest/api/searchservice/reset-indexer). For more selective reindexing, use [Reset Skills](/rest/api/searchservice/preview-api/reset-skills) or [Reset Documents](/rest/api/searchservice/indexers/reset-docs?view=rest-searchservice-2024-05-01-preview&preserve-view=true). Through the reset APIs, you can clear internal state, and also flush the cache if you enabled [incremental enrichment](search-howto-incremental-index.md). For more background and comparison of each reset option, see [Run or reset indexers, skills, and documents](search-howto-run-reset-indexers.md).
## Next steps
search Search Howto Index Azure Data Lake Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-index-azure-data-lake-storage.md
An indexer runs automatically when it's created. You can prevent this by setting
To monitor the indexer status and execution history, send a [Get Indexer Status](/rest/api/searchservice/get-indexer-status) request: ```http
-GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2023-11-01
+GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] ```
By default, the blob indexer stops as soon as it encounters a blob with an unsup
There are five indexer properties that control the indexer's response when errors occur. ```http
-PUT /indexers/[indexer name]?api-version=2023-11-01
+PUT /indexers/[indexer name]?api-version=2024-07-01
{ "parameters" : { "maxFailedItems" : 10,
search Search Howto Index Changed Deleted Blobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-index-changed-deleted-blobs.md
- ignite-2023 Previously updated : 06/14/2024 Last updated : 08/05/2024 # Change and delete detection using indexers for Azure Storage in Azure AI Search
Although change detection is a given, deletion detection isn't. An indexer doesn
There are two ways to implement a soft delete strategy:
-+ [Native blob soft delete](#native-blob-soft-delete), applies to Blob Storage only
++ [Native blob soft delete (preview)](#native-blob-soft-delete), applies to Blob Storage only + [Soft delete using custom metadata](#soft-delete-using-custom-metadata) The deletion detection strategy should be applied from the very first indexer run. If you didn't establish the deletion policy prior to the initial run, any documents that were deleted before the policy was implemented will remain in your index, even if you add the policy to the indexer later and reset it. If this has occurred, it is suggested that you create a new index using a new indexer, ensuring the deletion policy is in place from the beginning. - ## Prerequisites + Use an Azure Storage indexer for [Blob Storage](search-howto-indexing-azure-blob-storage.md), [Table Storage](search-howto-indexing-azure-tables.md), [File Storage](search-howto-indexing-azure-tables.md), or [Data Lake Storage Gen2](search-howto-index-azure-data-lake-storage.md) + Use consistent document keys and file structure. Changing document keys or directory names and paths (applies to ADLS Gen2) breaks the internal tracking information used by indexers to know which content was indexed, and when it was last indexed. - > [!NOTE] > ADLS Gen2 allows directories to be renamed. When a directory is renamed, the timestamps for the blobs in that directory do not get updated. As a result, the indexer will not re-index those blobs. If you need the blobs in a directory to be reindexed after a directory rename because they now have new URLs, you will need to update the `LastModified` timestamp for all the blobs in the directory so that the indexer knows to re-index them during a future run. The virtual directories in Azure Blob Storage cannot be changed, so they do not have this issue. - ## Native blob soft delete For this deletion detection approach, Azure AI Search depends on the [native blob soft delete](../storage/blobs/soft-delete-blob-overview.md) feature in Azure Blob Storage to determine whether blobs have transitioned to a soft deleted state. When blobs are detected in this state, a search indexer uses this information to remove the corresponding document from the index.
For this deletion detection approach, Azure AI Search depends on the [native blo
+ Document keys for the documents in your index must be mapped to either be a blob property or blob metadata, such as "metadata_storage_path".
-+ You must use the [REST API (`api-version=2023-11-01`)](/rest/api/searchservice/search-service-api-versions) or newer version, or the indexer Data Source configuration in the Azure portal, to configure support for soft delete.
++ You must use a preview REST API such as [`2024-05-01-preview`](/rest/api/searchservice/data-sources/create?view=rest-searchservice-2024-05-01-preview&preserve-view=true), or the indexer Data Source configuration in the Azure portal, to configure support for soft delete. + [Blob versioning](../storage/blobs/versioning-overview.md) must not be enabled in the storage account. Otherwise, native soft delete isn't supported by design. - ### Configure native soft delete In Blob storage, when enabling soft delete per the requirements, set the retention policy to a value that's much higher than your indexer interval schedule. If there's an issue running the indexer, or if you have a large number of documents to index, there's plenty of time for the indexer to eventually process the soft deleted blobs. Azure AI Search indexers will only delete a document from the index if it processes the blob while it's in a soft deleted state.
-In Azure AI Search, set a native blob soft deletion detection policy on the data source. You can do this either from the Azure portal, by using REST API (`api-version=2023-11-01`). The following instructions explain how to set the delete detection policy in Azure portal or through REST APIs.
+In Azure AI Search, set a native blob soft deletion detection policy on the data source. You can do this either from the Azure portal or by using a previewREST API (`2024-05-01-preview`). The following instructions explain how to set the delete detection policy in Azure portal or through REST APIs.
### [**Azure portal**](#tab/portal)
In Azure AI Search, set a native blob soft deletion detection policy on the data
Set the soft deletion detection policy in the data source definition. Specify the API version when creating or updating the data source. ```http
-PUT https://[service name].search.windows.net/datasources/blob-datasource?api-version=2023-11-01
+PUT https://[service name].search.windows.net/datasources/blob-datasource?api-version=2024-05-01-preview
Content-Type: application/json api-key: [admin key] {
To make sure that an undeleted blob is reindexed, you'll need to update the blob
This method uses custom metadata to indicate whether a search document should be removed from the index. It requires two separate actions: deleting the search document from the index, followed by file deletion in Azure Storage.
+This feature is generally available.
+ There are steps to follow in both Azure Storage and Azure AI Search, but there are no other feature dependencies. 1. In Azure Storage, add a custom metadata key-value pair to the file to indicate the file is flagged for deletion. For example, you could name the property "IsDeleted", set to false. When you want to delete the file, change it to true.
There are steps to follow in both Azure Storage and Azure AI Search, but there a
1. In Azure AI Search, edit the data source definition to include a "dataDeletionDetectionPolicy" property. For example, the following policy considers a file to be deleted if it has a metadata property `IsDeleted` with the value `true`: ```http
- PUT https://[service name].search.windows.net/datasources/file-datasource?api-version=2023-11-01
+ PUT https://[service name].search.windows.net/datasources/file-datasource?api-version=2024-07-01
{ "name" : "file-datasource", "type" : "azurefile",
search Search Howto Index Cosmosdb https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-index-cosmosdb.md
The data source definition specifies the data to index, credentials, and policie
1. [Create or update a data source](/rest/api/searchservice/create-data-source) to set its definition: ```http
- POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
+ POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json api-key: [Search service admin key] {
In a [search index](search-what-is-an-index.md), add fields to accept the source
1. [Create or update an index](/rest/api/searchservice/create-index) to define search fields that store data: ```http
- POST https://[service name].search.windows.net/indexes?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexes?api-version=2024-07-01
Content-Type: application/json api-key: [Search service admin key] {
Once the index and data source have been created, you're ready to create the ind
1. [Create or update an indexer](/rest/api/searchservice/create-indexer) by giving it a name and referencing the data source and target index: ```http
- POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json api-key: [search service admin key] {
An indexer runs automatically when it's created. You can prevent this by setting
To monitor the indexer status and execution history, send a [Get Indexer Status](/rest/api/searchservice/get-indexer-status) request: ```http
-GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2023-11-01
+GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] ```
The `softDeleteColumnName` must be a top-level field in the index. Using nested
The following example creates a data source with a soft-deletion policy: ```http
-POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
+POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json api-key: [Search service admin key]
search Search Howto Index Csv Blobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-index-csv-blobs.md
Putting it all together, here are the complete payload examples.
Datasource: ```http
-POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
+POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] {
api-key: [admin key]
Indexer: ```http
-POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] {
search Search Howto Index Json Blobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-index-json-blobs.md
The blob indexer parses the JSON document into a single search document, loading
Although the default behavior is one search document per JSON blob, setting the **`json`** parsing mode changes the internal field mappings for content, promoting fields inside `content` to actual fields in the search index. An example indexer definition for the **`json`** parsing mode might look like this: ```http
-POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
Alternatively, you can use the JSON array option. This option is useful when blo
The `parameters` property on the indexer contains parsing mode values. For a JSON array, the indexer definition should look similar to the following example. ```http
-POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
If your blob contains multiple JSON entities separated by a newline, and you wan
For JSON lines, the indexer definition should look similar to the following example. ```http
-POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
search Search Howto Index Plaintext Blobs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-index-plaintext-blobs.md
An alternative third option for breaking content into multiple parts requires ad
To index plain text blobs, create or update an indexer definition with the `parsingMode` configuration property set to `text` on a [Create Indexer](/rest/api/searchservice/create-indexer) request: ```http
-PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2023-11-01
+PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
By default, the `UTF-8` encoding is assumed. To specify a different encoding, us
Parsing modes are specified in the indexer definition. ```http
-POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
search Search Howto Indexing Azure Blob Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-indexing-azure-blob-storage.md
In a [search index](search-what-is-an-index.md), add fields to accept the conten
1. [Create or update an index](/rest/api/searchservice/indexes/create-or-update) to define search fields that will store blob content and metadata: ```http
- POST https://[service name].search.windows.net/indexes?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexes?api-version=2024-07-01
{ "name" : "my-search-index", "fields": [
Once the index and data source have been created, you're ready to create the ind
1. [Create or update an indexer](/rest/api/searchservice/indexers/create-or-update) by giving it a name and referencing the data source and target index: ```http
- POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
{ "name" : "my-blob-indexer", "dataSourceName" : "my-blob-datasource",
To illustrate, let's consider an example of two indexers, pulling data from two
First indexer definition example: ```http
-POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
{ "name" : "my-blob-indexer1", "dataSourceName" : "my-blob-datasource1",
POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
Second indexer definition that runs in parallel example: ```http
-POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
{ "name" : "my-blob-indexer2", "dataSourceName" : "my-blob-datasource2",
POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
To monitor the indexer status and execution history, send a [Get Indexer Status](/rest/api/searchservice/indexers/get-status) request: ```http
-GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2023-11-01
+GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] ```
By default, the blob indexer stops as soon as it encounters a blob with an unsup
There are five indexer properties that control the indexer's response when errors occur. ```http
-PUT /indexers/[indexer name]?api-version=2023-11-01
+PUT /indexers/[indexer name]?api-version=2024-07-01
{ "parameters" : { "maxFailedItems" : 10,
search Search Howto Indexing Azure Tables https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-indexing-azure-tables.md
The data source definition specifies the source data to index, credentials, and
1. [Create or update a data source](/rest/api/searchservice/create-data-source) to set its definition: ```http
- POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
+ POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
{ "name": "my-table-storage-ds", "description": null,
In a [search index](search-what-is-an-index.md), add fields to accept the conten
1. [Create or update an index](/rest/api/searchservice/create-index) to define search fields that will store content from entities: ```http
- POST https://[service name].search.windows.net/indexes?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexes?api-version=2024-07-01
{ "name" : "my-search-index", "fields": [
Once you have an index and data source, you're ready to create the indexer. Inde
1. [Create or update an indexer](/rest/api/searchservice/create-indexer) by giving it a name and referencing the data source and target index: ```http
- POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
{ "name" : "my-table-indexer", "dataSourceName" : "my-table-storage-ds",
An indexer runs automatically when it's created. You can prevent this by setting
To monitor the indexer status and execution history, send a [Get Indexer Status](/rest/api/searchservice/get-indexer-status) request: ```http
-GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2023-11-01
+GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] ```
search Search Howto Managed Identities Cosmos Db https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-managed-identities-cosmos-db.md
When you're connecting with a system-assigned managed identity, the only change
Here's an example of how to create a data source to index data from a Cosmos DB account using the [Create Data Source](/rest/api/searchservice/create-data-source) REST API and a managed identity connection string. The managed identity connection string format is the same for the REST API, .NET SDK, and the Azure portal. ```http
-POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
+POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
{ "name": "my-cosmosdb-ds", "type": "cosmosdb",
When you're connecting with a user-assigned managed identity, there are two chan
Here's an example of how to create an indexer data source object using the REST API. ```http
-POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
+POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
{ "name": "[my-cosmosdb-ds]",
search Search Howto Managed Identities Sql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-managed-identities-sql.md
When you're connecting with a system-assigned managed identity, the only change
Here's an example of how to create a data source to index data from a storage account using the [Create Data Source](/rest/api/searchservice/create-data-source) REST API and a managed identity connection string. The managed identity connection string format is the same for the REST API, .NET SDK, and the Azure portal. ```http
-POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
+POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
The index specifies the fields in a document, attributes, and other constructs t
Here's a [Create Index](/rest/api/searchservice/indexes/create) REST API call with a searchable `booktitle` field: ```http
-POST https://[service name].search.windows.net/indexes?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexes?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
An indexer connects a data source with a target search index, and provides a sch
Here's a [Create Indexer](/rest/api/searchservice/indexers/create) REST API call with an Azure SQL indexer definition. The indexer runs when you submit the request. ```http
-POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
search Search Howto Managed Identities Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-managed-identities-storage.md
For connections made using a system-assigned managed identity, the only change t
Provide a `ResourceId` that has no account key or password. The `ResourceId` must include the subscription ID of the storage account, the resource group of the storage account, and the storage account name. ```http
-POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
+POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
{ "name" : "blob-datasource",
Provide a `ResourceId` that has no account key or password. The `ResourceId` mus
Provide an `identity` using the syntax shown in the following example. ```http
-POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
+POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
{ "name" : "blob-datasource",
search Search Howto Monitor Indexers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-monitor-indexers.md
You can also configure the graph to see the number of skill invocations over the
You can retrieve the status and execution history of an indexer using the [Get Indexer Status command](/rest/api/searchservice/indexers/get-status): ```http
-GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2023-11-01
+GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2024-07-01
api-key: [Search service admin key] ```
search Search Howto Powerapps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-powerapps.md
A connector in Power Apps is a data source connection. In this step, create a cu
* Select the verb `GET`
- * For the URL, enter a sample query for your search index (`search=*` returns all documents, `$select=` lets you choose fields). The API version is required. Fully specified, a URL might look like this: `mydemo.search.windows.net/indexes/hotels-sample-index/docs?search=*&$select=HotelName,Description,Address/City&api-version=2023-11-01`. Omit the `https://` prefix.
+ * For the URL, enter a sample query for your search index (`search=*` returns all documents, `$select=` lets you choose fields). The API version is required. Fully specified, a URL might look like this: `mydemo.search.windows.net/indexes/hotels-sample-index/docs?search=*&$select=HotelName,Description,Address/City&api-version=2024-07-01`. Omit the `https://` prefix.
* For Headers, type `Content-Type application/json`.
A connector in Power Apps is a data source connection. In this step, create a cu
:::image type="content" source="./media/search-howto-powerapps/1-10-4-parameter-metadata-select.png" alt-text="Select parameter metadata" border="true":::
-1. For *api-version*: Set `2023-11-01` as the **default value**, set **required** to *True*, and set **visibility** as *internal*.
+1. For *api-version*: Set `2024-07-01` as the **default value**, set **required** to *True*, and set **visibility** as *internal*.
:::image type="content" source="./media/search-howto-powerapps/1-10-2-parameter-metadata-version.png" alt-text="Version parameter metadata" border="true":::
A connector in Power Apps is a data source connection. In this step, create a cu
parameters: - {name: search, in: query, required: false, type: string, default: '*'} - {name: $select, in: query, required: false, type: string, default: 'HotelName,Description,Address/City'}
- - {name: api-version, in: query, required: true, type: string, default: '2023-11-01',
+ - {name: api-version, in: query, required: true, type: string, default: '2024-07-01',
x-ms-visibility: internal} - {name: Content-Type, in: header, required: false, type: string} ```
search Search Howto Reindex https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-reindex.md
Here's a [REST API example](search-get-started-rest.md) demonstrating these tips
```rest ### Get Secret Point Hotel by ID
-GET {{baseUrl}}/indexes/hotels-vector-quickstart/docs('1')?api-version=2023-11-01 HTTP/1.1
+GET {{baseUrl}}/indexes/hotels-vector-quickstart/docs('1')?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}} ### Change the description, city, and tags for Secret Point Hotel
-POST {{baseUrl}}/indexes/hotels-vector-quickstart/docs/search.index?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes/hotels-vector-quickstart/docs/search.index?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
POST {{baseUrl}}/indexes/hotels-vector-quickstart/docs/search.index?api-version=
} ### Retrieve the same document, confirm the overwrites and retention of all other values
-GET {{baseUrl}}/indexes/hotels-vector-quickstart/docs('1')?api-version=2023-11-01 HTTP/1.1
+GET {{baseUrl}}/indexes/hotels-vector-quickstart/docs('1')?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}} ```
Deleting a document doesn't immediately free up space in the index. Every few mi
1. [Look up the document](/rest/api/searchservice/documents/get) to verify the value of the document ID and to review its content before deleting it. Specify the key or document ID in the request. The following examples illustrate a simple string for the [Hotels sample index](search-get-started-portal.md) and a base-64 encoded string for the metadata_storage_path key of the [cog-search-demo index](cognitive-search-tutorial-blob.md). ```http
- GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2023-11-01
+ GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2024-07-01
``` ```http
- GET https://[service name].search.windows.net/indexes/cog-search-demo/docs/aHR0cHM6Ly9oZWlkaWJsb2JzdG9yYWdlMi5ibG9iLmNvcmUud2luZG93cy5uZXQvY29nLXNlYXJjaC1kZW1vL2d1dGhyaWUuanBn0?api-version=2023-11-01
+ GET https://[service name].search.windows.net/indexes/cog-search-demo/docs/aHR0cHM6Ly9oZWlkaWJsb2JzdG9yYWdlMi5ibG9iLmNvcmUud2luZG93cy5uZXQvY29nLXNlYXJjaC1kZW1vL2d1dGhyaWUuanBn0?api-version=2024-07-01
``` 1. [Delete the document](/rest/api/searchservice/documents) using a delete `@search.action` to remove it from the search index. ```http
- POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2023-11-01
+ POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2024-07-01
Content-Type: application/json api-key: [admin key] {
search Search Howto Schedule Indexers https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-howto-schedule-indexers.md
Switch to the **Indexer Definition (JSON)** tab at the top of the index to view
1. Set the schedule property in the body of the request: ```http
- PUT /indexers/<indexer-name>?api-version=2023-11-01
+ PUT /indexers/<indexer-name>?api-version=2024-07-01
{ "dataSourceName" : "myazuresqldatasource", "targetIndexName" : "my-target-index-name",
search Search Indexer Field Mappings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-indexer-field-mappings.md
Only URL-safe characters can appear in an Azure AI Search document key (so that
The following example specifies the base64Encode function on `metadata_storage_name` to handle unsupported characters. ```http
-PUT /indexers?api-version=2023-11-01
+PUT /indexers?api-version=2024-07-01
{ "dataSourceName" : "my-blob-datasource ", "targetIndexName" : "my-search-index",
A document key (both before and after conversion) can't be longer than 1,024 cha
There are times when you need to use an encoded version of a field like `metadata_storage_path` as the key, but also need an unencoded version for full text search. To support both scenarios, you can map `metadata_storage_path` to two fields: one for the key (encoded), and a second for a path field that we can assume is attributed as `searchable` in the index schema. ```http
-PUT /indexers/blob-indexer?api-version=2023-11-01
+PUT /indexers/blob-indexer?api-version=2024-07-01
{ "dataSourceName" : " blob-datasource ", "targetIndexName" : "my-target-index",
search Search Indexer How To Access Private Sql https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-indexer-how-to-access-private-sql.md
This article assumes a [REST client](search-get-started-rest.md) and uses the RE
Provide the connection string that you copied earlier. ```http
- POST https://myservice.search.windows.net/datasources?api-version=2023-11-01
+ POST https://myservice.search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json api-key: admin-key {
This article assumes a [REST client](search-get-started-rest.md) and uses the RE
[Indexer execution](search-indexer-securing-resources.md#indexer-execution-environment) occurs in either a private environment that's specific to the search service, or a multi-tenant environment that's used internally to offload expensive skillset processing for multiple customers. **When connecting over a private endpoint, indexer execution must be private.** ```http
- POST https://myservice.search.windows.net/indexers?api-version=2023-11-01
+ POST https://myservice.search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json api-key: admin-key {
search Search Indexer Howto Access Private https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-indexer-howto-access-private.md
On the Azure AI Search side, you can confirm request approval by revisiting the
Alternatively, you can also obtain connection state by using the [Shared Private Link Resources - Get](/rest/api/searchmanagement/shared-private-link-resources/get). ```dotnetcli
-az rest --method get --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Search/searchServices/contoso-search/sharedPrivateLinkResources/blob-pe?api-version=2023-11-01
+az rest --method get --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Search/searchServices/contoso-search/sharedPrivateLinkResources/blob-pe?api-version=2024-07-01
``` This would return a JSON, where the connection state shows up as "status" under the "properties" section. Following is an example for a storage account.
search Search Indexer Troubleshooting https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-indexer-troubleshooting.md
If you're indexing content from Azure Blob Storage, and the container includes b
In this situation, you can [set configuration options](search-howto-indexing-azure-blob-storage.md#DealingWithErrors) to allow indexer processing to continue in the event of problems with individual documents. ```http
-PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2023-11-01
+PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
The blob indexer [finds and extracts text from blobs in a container](search-howt
```http
-PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2023-11-01
+PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2024-07-01
Content-Type: application/json api-key: [admin key]
search Search Language Support https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-language-support.md
By default, a search returns all fields that are marked as retrievable. As such,
#### Example in REST ```http
-POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "animaux acceptés", "searchFields": "Tags, Description_fr",
Sometimes the language of the agent issuing a query isn't known, in which case t
You would then include the scoring profile in the search request: ```http
-POST /indexes/hotels/docs/search?api-version=2023-11-01
+POST /indexes/hotels/docs/search?api-version=2024-07-01
{ "search": "pets allowed", "searchFields": "Tags, Description_fr",
search Search Lucene Query Architecture https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-lucene-query-architecture.md
A search request is a complete specification of what should be returned in a res
The following example is a search request you might send to Azure AI Search using the [REST API](/rest/api/searchservice/search-documents). ```
-POST /indexes/hotels/docs/search?api-version=2023-11-01
+POST /indexes/hotels/docs/search?api-version=2024-07-01
{ "search": "Spacious, air-condition* +\"Ocean view\"", "searchFields": "description, title",
search Search Monitor Queries https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-monitor-queries.md
When you enable resource logging, the system captures query requests in the **Az
AzureDiagnostics | project OperationName, Query_s, IndexName_s, Documents_d | where OperationName == "Query.Search"
- | where Query_s != "?api-version=2023-11-01&search=*"
+ | where Query_s != "?api-version=2024-07-01&search=*"
| where IndexName_s != "realestate-us-sample-index" ```
-1. Optionally, set a Column filter on *Query_s* to search over a specific syntax or string. For example, you could filter over *is equal to* `?api-version=2023-11-01&search=*&%24filter=HotelName`.
+1. Optionally, set a Column filter on *Query_s* to search over a specific syntax or string. For example, you could filter over *is equal to* `?api-version=2024-07-01&search=*&%24filter=HotelName`.
![Logged query strings](./media/search-monitor-usage/log-query-strings.png "Logged query strings")
search Search Pagination Page Layout https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-pagination-page-layout.md
You can choose which fields are in search results. While a search document might
Pick fields that offer contrast and differentiation among documents, providing sufficient information to invite a click-through response on the part of the user. On an e-commerce site, it might be a product name, description, brand, color, size, price, and rating. For the built-in hotels-sample index, it might be the "select" fields in the following example: ```http
-POST /indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST /indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "sandy beaches", "select": "HotelId, HotelName, Description, Rating, Address/City"
In this workaround, sort and filter are applied to a document ID field or anothe
1. Issue a query to return a full page of sorted results. ```http
- POST /indexes/good-books/docs/search?api-version=2023-11-01
+ POST /indexes/good-books/docs/search?api-version=2024-07-01
{ "search": "divine secrets", "top": 50,
In this workaround, sort and filter are applied to a document ID field or anothe
1. Use that "id" value in a range query to fetch the next page of results. This "id" field should have unique values, otherwise pagination may include duplicate results. ```http
- POST /indexes/good-books/docs/search?api-version=2023-11-01
+ POST /indexes/good-books/docs/search?api-version=2024-07-01
{ "search": "divine secrets", "top": 50,
To return highlighted terms, include the "highlight" parameter in the query requ
By default, the format mark up is `<em>`, but you can override the tag using `highlightPreTag` and `highlightPostTag` parameters. Your client code handles the response (for example, applying a bold font or a yellow background). ```http
-POST /indexes/good-books/docs/search?api-version=2023-11-01
+POST /indexes/good-books/docs/search?api-version=2024-07-01
{ "search": "divine secrets", "highlight": "title, original_title",
Within a highlighted field, formatting is applied to whole terms. For example, o
Whole-term formatting applies even on a phrase search, where multiple terms are enclosed in double quotation marks. The following example is the same query, except that "divine secrets" is submitted as a quotation-enclosed phrase (some REST clients require that you escape the interior quotation marks with a backslash `\"`): ```http
-POST /indexes/good-books/docs/search?api-version=2023-11-01
+POST /indexes/good-books/docs/search?api-version=2024-07-01
{ "search": "\"divine secrets\"", "select": "title,original_title",
search Search Query Create https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-query-create.md
A full text query is specified in a `search` parameter and consists of terms, qu
The following [Search POST REST API](/rest/api/searchservice/documents/search-post) call illustrates a query request using the aforementioned parameters. ```http
-POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "NY +view", "queryType": "simple",
Use a REST client to set up a request. [Quickstart: Text search using REST](sear
The following example calls the REST API for full text search: ```http
-POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "NY +view", "queryType": "simple",
search Search Query Fuzzy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-query-fuzzy.md
Fuzzy queries are constructed using the full Lucene query syntax, invoking the [
Here's an example of a query request that invokes fuzzy search. It includes four terms, two of which are misspelled: ```http
-POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "seatle~ waterfront~ view~ hotle~", "queryType": "full",
search Search Query Lucene Examples https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-query-lucene-examples.md
Request headers must have the following values:
URI parameters must include your search service endpoint with the index name, docs collections, search command, and API version, similar to the following example: ```http
-https://{{service-name}}.search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+https://{{service-name}}.search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-07-01
``` Request body should be formed as valid JSON:
Fielded search scope individual, embedded search expressions to a specific field
When you use this query syntax, you can omit the `searchFields` parameter when the fields you want to query are in the search expression itself. If you include `searchFields` with fielded search, the `fieldName:searchExpression` always takes precedence over `searchFields`. ```http
-POST /indexes/hotel-samples-index/docs/search?api-version=2023-11-01
+POST /indexes/hotel-samples-index/docs/search?api-version=2024-07-01
{ "search": "HotelName:(hotel NOT motel) AND Category:'Resort and Spa'", "queryType": "full",
The field specified in `fieldName:searchExpression` must be a searchable field.
Fuzzy search matches on terms that are similar, including misspelled words. To do a fuzzy search, append the tilde `~` symbol at the end of a single word with an optional parameter, a value between 0 and 2, that specifies the edit distance. For example, `blue~` or `blue~1` would return blue, blues, and glue. ```http
-POST /indexes/hotel-samples-index/docs/search?api-version=2023-11-01
+POST /indexes/hotel-samples-index/docs/search?api-version=2024-07-01
{ "search": "Tags:conserge~", "queryType": "full",
Proximity search finds terms that are near each other in a document. Insert a ti
This query searches for the terms "hotel" and "airport" within 5 words of each other in a document. The quotation marks are escaped (`\"`) to preserve the phrase: ```http
-POST /indexes/hotel-samples-index/docs/search?api-version=2023-11-01
+POST /indexes/hotel-samples-index/docs/search?api-version=2024-07-01
{ "search": "Description: \"hotel airport\"~5", "queryType": "full",
Term boosting refers to ranking a document higher if it contains the boosted ter
In this "before" query, search for "beach access" and notice that there are seven documents that match on one or both terms. ```http
-POST /indexes/hotel-samples-index/docs/search?api-version=2023-11-01
+POST /indexes/hotel-samples-index/docs/search?api-version=2024-07-01
{ "search": "beach access", "queryType": "full",
After boosting the term "beach", the match on Old Carrabelle Hotel moves down to
A regular expression search finds a match based on the contents between forward slashes "/", as documented in the [RegExp class](https://lucene.apache.org/core/6_6_1/core/org/apache/lucene/util/automaton/RegExp.html). ```http
-POST /indexes/hotel-samples-index/docs/search?api-version=2023-11-01
+POST /indexes/hotel-samples-index/docs/search?api-version=2024-07-01
{ "search": "HotelName:/(Mo|Ho)tel/", "queryType": "full",
You can use generally recognized syntax for multiple (`*`) or single (`?`) chara
In this query, search for hotel names that contain the prefix 'sc'. You can't use a `*` or `?` symbol as the first character of a search. ```http
-POST /indexes/hotel-samples-index/docs/search?api-version=2023-11-01
+POST /indexes/hotel-samples-index/docs/search?api-version=2024-07-01
{ "search": "HotelName:sc*", "queryType": "full",
search Search Query Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-query-overview.md
Geospatial search uses kilometers for distance. Coordinates are specified in thi
Here's an example of a filter for geospatial search. This filter finds other `Location` fields in the search index that have coordinates within a 300-kilometer radius of the geography point (in this example, Washington D.C.). It returns address information in the result, and includes an optional `facets` clause for self-navigation based on location. ```http
-POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2024-05-01-preview
+POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2024-07-01
{ "count": true, "search": "*",
search Search Query Simple Examples https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-query-simple-examples.md
Request headers must have the following values:
URI parameters must include your search service endpoint with the index name, docs collections, search command, and API version, similar to the following example: ```http
-https://{{service-name}}.search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+https://{{service-name}}.search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-07-01
``` Request body should be formed as valid JSON:
Request body should be formed as valid JSON:
Full text search can be any number of standalone terms or quote-enclosed phrases, with or without boolean operators. ```http
-POST /indexes/hotel-samples-index/docs/search?api-version=2023-11-01
+POST /indexes/hotel-samples-index/docs/search?api-version=2024-07-01
{ "search": "pool spa +airport", "searchMode": "any",
Uniform scores of "1.0" occur when there's no rank, either because the search wa
When returning search results in a query, a logical next step is to provide a details page that includes more fields from the document. This example shows you how to return a single document using [Lookup Document](/rest/api/searchservice/documents/get) by passing in the document ID. ```http
-GET /indexes/hotels-sample-index/docs/41?api-version=2023-11-01
+GET /indexes/hotels-sample-index/docs/41?api-version=2024-07-01
``` All documents have a unique identifier. If you're using the portal, select the index from the **Indexes** tab and then look at the field definitions to determine which field is the key. Using REST, the [Get Index](/rest/api/searchservice/indexes/get) call returns the index definition in the response body.
Response for the above query consists of the document whose key is 41. Any field
Filters can be defined on any field marked as `filterable` in the index definition. For hotels-sample-index, filterable fields include Category, Tags, ParkingIncluded, Rating, and most Address fields. ```http
-POST /indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST /indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "art tours", "queryType": "simple",
Response for the above query is scoped to only those hotels categorized as "Repo
Filter expressions can include ["search.ismatch" and "search.ismatchscoring" functions](search-query-odata-full-text-search-functions.md), allowing you to build a search query within the filter. This filter expression uses a wildcard on *free* to select amenities including free wifi, free parking, and so forth. ```http
-POST /indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST /indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "", "filter": "search.ismatch('free*', 'Tags', 'full', 'any')",
Range filtering is supported through filters expressions for any data type. The
The following query is a numeric range. In hotels-sample-index, the only filterable numeric field is Rating. ```http
-POST /indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST /indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "*", "filter": "Rating ge 2 and Rating lt 4",
Response for this query should look similar to the following example, trimmed fo
The next query is a range filter over a string field (Address/StateProvince): ```http
-POST /indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST /indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "*", "filter": "Address/StateProvince ge 'A*' and Address/StateProvince lt 'D*'",
Response for this query should look similar to the example below, trimmed for br
The hotels-sample index includes a Location field with latitude and longitude coordinates. This example uses the [geo.distance function](search-query-odata-geo-spatial-functions.md#examples) that filters on documents within the circumference of a starting point, out to an arbitrary distance (in kilometers) that you provide. You can adjust the last value in the query (10) to reduce or enlarge the surface area of the query. ```http
-POST /indexes/v/docs/search?api-version=2023-11-01
+POST /indexes/v/docs/search?api-version=2024-07-01
{ "search": "*", "filter": "geo.distance(Location, geography'POINT(-122.335114 47.612839)') le 10",
The following example provides an illustration. Running the following query with
Notice that there's no space between the boolean operator (`-`) and the phrase "air conditioning". ```http
-POST /indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST /indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "restaurant -\"air conditioning\"", "searchMode": "any",
By default, a search service returns the top 50 matches. To control the number o
The following example uses a filter and sort order on the Rating field (Rating is both filterable and sortable) because it's easier to see the effects of paging on sorted results. In a regular full search query, the top matches are ranked and paged by `@search.score`. ```http
-POST /indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST /indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "*", "filter": "Rating gt 4",
The query finds 21 matching documents, but because you specified `top`, the resp
To get the next 5, skip the first batch: ```http
-POST /indexes/hotels-sample-index/docs/search?api-version=2023-11-01
+POST /indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{ "search": "*", "filter": "Rating gt 4",
search Search Security Api Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-security-api-keys.md
Here's an example of admin API key usage on a create index request:
```http ### Create an index
-POST {{baseUrl}}/indexes?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{adminApiKey}}
Here's an example of query API key usage on a Search Documents (GET) request:
```http ### Query an index
-GET /indexes/my-new-index/docs?search=*&api-version=2023-11-01&api-key={{queryApiKey}}
+GET /indexes/my-new-index/docs?search=*&api-version=2024-07-01&api-key={{queryApiKey}}
``` > [!NOTE]
search Search Security Get Encryption Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-security-get-encryption-keys.md
$headers = @{
To return a list of all search indexes, set the endpoint to the indexes collection. ```powershell
-$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes?api-version=2023-11-01&$select=name'
+$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes?api-version=2024-07-01&$select=name'
Invoke-RestMethod -Uri $uri -Headers $headers | ConvertTo-Json ``` To return a specific index definition, provide its name in the path. The encryptionKey property is at the end. ```powershell
-$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/<YOUR-INDEX-NAME>?api-version=2023-11-01'
+$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/indexes/<YOUR-INDEX-NAME>?api-version=2024-07-01'
Invoke-RestMethod -Uri $uri -Headers $headers | ConvertTo-Json ``` To return synonym maps, set the endpoint to the synonyms collection and then send the request. ```powershell
-$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/synonyms?api-version=2023-11-01&$select=name'
+$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/synonyms?api-version=2024-07-01&$select=name'
Invoke-RestMethod -Uri $uri -Headers $headers | ConvertTo-Json ``` The following example returns a specific synonym map definition, including the encryptionKey property is towards the end of the definition. ```powershell
-$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/synonyms/<YOUR-SYNONYM-MAP-NAME>?api-version=2023-11-01'
+$uri= 'https://<YOUR-SEARCH-SERVICE>.search.windows.net/synonyms/<YOUR-SYNONYM-MAP-NAME>?api-version=2024-07-01'
Invoke-RestMethod -Uri $uri -Headers $headers | ConvertTo-Json ```
search Search Security Manage Encryption Keys https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-security-manage-encryption-keys.md
Previously updated : 06/25/2024 Last updated : 08/05/2024 - references_regions - ignite-2023
Encryption is performed over the following content:
+ All content within indexes and synonym lists, including descriptions.
-+ For indexers, data sources, and skillsets, only those fields that store connection strings, descriptions, keys, and user inputs are encrypted. For example, skillsets have Azure AI services keys, and some skills accept user inputs, such as custom entities. In both cases, keys and user inputs into skills are encrypted.
++ For indexers, data sources, and skillsets, only those fields that store connection strings, descriptions, identities, keys, and user inputs are encrypted. For example, skillsets have Azure AI services keys, and some skills accept user inputs, such as custom entities. In both cases, keys and user inputs into skills are encrypted. Any references to external resources (such as Azure data sources or Azure OpenAI models) are also encrypted.+++ For vectorizer definitions used by queries, fields that store connection details or credential are encrypted. ## Full double encryption
search Search Security Rbac https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-security-rbac.md
This approach assumes Visual Studio Code with a REST client extension.
1. Paste and then send a request that uses the variables you've specified. For the "Search Index Data Reader" role, you can send a query. You can use any [supported API version](/rest/api/searchservice/search-service-api-versions). ```http
- POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2023-11-01 HTTP/1.1
+ POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2024-07-01 HTTP/1.1
Content-type: application/json Authorization: Bearer {{token}}
If you're already a Contributor or Owner of your search service, you can present
1. Paste in and then send a request to confirm access. Here's one that queries the hotels-quickstart index ```http
- POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2023-11-01 HTTP/1.1
+ POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2024-07-01 HTTP/1.1
Content-type: application/json Authorization: Bearer {{token}}
search Search Security Trimming For Azure Search https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-security-trimming-for-azure-search.md
In the search index, within the fields collection, you need one field that conta
The following index schema satisfies the field requirements. Documents that you index on Azure AI Search should have values for all of these fields, including the "group_ids". For the document with `file_name` "secured_file_b", only users that belong to group IDs "group_id1" or "group_id2" have read access to the file. ```https
- POST https://[search service].search.windows.net/indexes/securedfiles/docs/index?api-version=2023-11-01
+ POST https://[search service].search.windows.net/indexes/securedfiles/docs/index?api-version=2024-07-01
{ "name": "securedfiles", "fields": [
In Azure AI Search, the approaches for loading data are:
The following example shows a single HTTP POST request to the docs collection of your index's URL endpoint (see [Documents - Index](/rest/api/searchservice/documents/)). The body of the HTTP request is a JSON rendering of the documents to be indexed: ```http
-POST https://[search service].search.windows.net/indexes/securedfiles/docs/index?api-version=2023-11-01
+POST https://[search service].search.windows.net/indexes/securedfiles/docs/index?api-version=2024-07-01
{ "value": [ {
This sample shows how to set up query using a POST request.
Issue the HTTP POST request, specifying the filter in the request body: ```http
-POST https://[service name].search.windows.net/indexes/securedfiles/docs/search?api-version=2023-11-01
+POST https://[service name].search.windows.net/indexes/securedfiles/docs/search?api-version=2024-07-01
{ "filter":"group_ids/any(g:search.in(g, 'group_id1, group_id2'))"
search Search Semi Structured Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-semi-structured-data.md
See [Quickstart: Text search using REST](search-get-started-rest.md) if you need
```http ### Create a data source
-POST {{baseUrl}}/datasources?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/datasources?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
HTTP/1.1 201 Created
Transfer-Encoding: chunked Content-Type: application/json; odata.metadata=minimal; odata.streaming=true; charset=utf-8 ETag: "0x8DC43A5FDB8448F"
-Location: https://free-demo-search-svc.search.windows.net:443/datasources('ny-philharmonic-ds')?api-version=2023-11-01
+Location: https://free-demo-search-svc.search.windows.net:443/datasources('ny-philharmonic-ds')?api-version=2024-07-01
Server: Microsoft-IIS/10.0 Strict-Transport-Security: max-age=2592000, max-age=15724800; includeSubDomains Preference-Applied: odata.include-annotations="*"
For nested JSON, the index fields must be identical to the source fields. Curren
```http ### Create an index
-POST {{baseUrl}}/indexes?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
The indexer configuration includes the `jsonArray` parsing mode and a `documentR
```http ### Create and run an indexer
-POST {{baseUrl}}/indexers?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexers?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
You can start searching as soon as the first document is loaded.
```http ### Query the index
-POST {{baseUrl}}/indexes/ny-philharmonic-index/docs/search?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes/ny-philharmonic-index/docs/search?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
Connection: close
}, "value": [ ],
- "@odata.nextLink": "https://free-demo-search-svc.search.windows.net/indexes/ny-philharmonic-index/docs/search?api-version=2023-11-01"
+ "@odata.nextLink": "https://free-demo-search-svc.search.windows.net/indexes/ny-philharmonic-index/docs/search?api-version=2024-07-01"
} ```
Add a `search` parameter to search on a string. Add a `select` parameter to limi
```http ### Query the index
-POST {{baseUrl}}/indexes/ny-philharmonic-index/docs/search?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes/ny-philharmonic-index/docs/search?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
Indexers can be reset, clearing execution history, which allows a full rerun. Th
```http ### Reset the indexer
-POST {{baseUrl}}/indexers/ny-philharmonic-indexer/reset?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexers/ny-philharmonic-indexer/reset?api-version=2024-07-01 HTTP/1.1
api-key: {{apiKey}} ``` ```http ### Run the indexer
-POST {{baseUrl}}/indexers/ny-philharmonic-indexer/run?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexers/ny-philharmonic-indexer/run?api-version=2024-07-01 HTTP/1.1
api-key: {{apiKey}} ``` ```http ### Check indexer status
-GET {{baseUrl}}/indexers/ny-philharmonic-indexer/status?api-version=2023-11-01 HTTP/1.1
+GET {{baseUrl}}/indexers/ny-philharmonic-indexer/status?api-version=2024-07-01 HTTP/1.1
api-key: {{apiKey}} ```
search Search Synapseml Cognitive Services https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-synapseml-cognitive-services.md
This particular example is searching for the word "door" (`"search": "door"`). I
```python import requests
-url = "https://{}.search.windows.net/indexes/{}/docs/search?api-version=2023-11-01".format(search_service, search_index)
+url = "https://{}.search.windows.net/indexes/{}/docs/search?api-version=2024-07-01".format(search_service, search_index)
requests.post(url, json={"search": "door", "count": "true", "select": "Description, Translations"}, headers={"api-key": search_key}).json() ```
search Search Synonyms https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-synonyms.md
To create a synonym map, do so programmatically. The portal doesn't support syno
Use the [Create Synonym Map (REST API)](/rest/api/searchservice/create-synonym-map) to create a synonym map. ```http
-POST /synonymmaps?api-version=2023-11-01
+POST /synonymmaps?api-version=2024-07-01
{ "name": "geo-synonyms", "format": "solr",
If the synonym map exists on the search service, it's used on the next query, wi
Use the [Create or Update Index (REST API)](/rest/api/searchservice/indexes/create-or-update) to modify a field definition. ```http
-POST /indexes?api-version=2023-11-01
+POST /indexes?api-version=2024-07-01
{ "name":"hotels-sample-index", "fields":[
search Search What Is Azure Search https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/search-what-is-azure-search.md
Previously updated : 07/29/2024 Last updated : 08/05/2024 # What's Azure AI Search?
Azure AI Search ([formerly known as "Azure Cognitive Search"](whats-new.md#new-s
Information retrieval is foundational to any app that surfaces text and vectors. Common scenarios include catalog or document search, data exploration, and increasingly feeding query results to prompts based on your proprietary grounding data for conversational and copilot search. When you create a search service, you work with the following capabilities: + A search engine for [vector search](vector-search-overview.md) and [full text](search-lucene-query-architecture.md) and [hybrid search](hybrid-search-overview.md) over a search index
-+ Rich indexing with [integrated data chunking and vectorization (preview)](vector-search-integrated-vectorization.md), [lexical analysis](search-analyzers.md) for text, and [optional applied AI](cognitive-search-concept-intro.md) for content extraction and transformation
++ Rich indexing with [integrated data chunking and vectorization](vector-search-integrated-vectorization.md), [lexical analysis](search-analyzers.md) for text, and [optional applied AI](cognitive-search-concept-intro.md) for content extraction and transformation + Rich query syntax for [vector queries](vector-search-how-to-query.md), text search, [hybrid queries](hybrid-search-how-to-query.md), fuzzy search, autocomplete, geo-search and others + Azure scale, security, and reach + Azure integration at the data layer, machine learning layer, Azure AI services and Azure OpenAI
search Semantic How To Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/semantic-how-to-configure.md
- ignite-2023 Previously updated : 06/27/2024 Last updated : 08/05/2024 # Configure semantic ranking and return captions in search results
SearchIndex searchIndex = new(indexName)
If your semantic ranking code is using preview APIs, this section explains how to migrate to stable versions. You can check the change logs for verification of general availability:
-+ [2023-11-01 (REST)](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2023-11-01&preserve-view=true)
++ [2024-07-01 (REST)](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-07-01&preserve-view=true) + [Azure SDK for .NET (11.5) change log](https://github.com/Azure/azure-sdk-for-net/blob/Azure.Search.Documents_11.5.1/sdk/search/Azure.Search.Documents/CHANGELOG.md#1150-2023-11-10) + [Azure SDK for Python (11.4) change log](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/search/azure-search-documents/CHANGELOG.md#1140-2023-10-13) + [Azure SDK for Java (11.6) change log](https://github.com/Azure/azure-sdk-for-jav#1160-2023-11-13)
search Semantic How To Query Request https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/semantic-how-to-query-request.md
Last updated 07/24/2024
# Add semantic ranking to queries in Azure AI Search
-This article explains how to invoke the semantic ranker on queries. You can apply semantic ranking to text queries, hybrid queries, and vector queries if your search documents contain string fields and the [vector query has a text representation](vector-search-how-to-query.md#query-with-integrated-vectorization-preview).
+This article explains how to invoke the semantic ranker on queries. You can apply semantic ranking to text queries, hybrid queries, and vector queries if your search documents contain string fields and the [vector query has a text representation](vector-search-how-to-query.md#query-with-integrated-vectorization).
Semantic ranking iterates over an initial result set, applying an L2 ranking methodology that promotes the most semantically relevant results to the top of the stack. You can also get semantic captions, with highlights over the most relevant terms and phrases, and [semantic answers](semantic-answers.md).
The following example in this section uses the [hotels-sample-index](search-get-
1. Paste the following request into a web client as a template. Replace the service name and index name with valid values. ```http
- POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2023-11-01     
+ POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-07-01     
{ "queryType": "semantic", "search": "newer hotel near the water with a great restaurant",
search Tutorial Create Custom Analyzer https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/tutorial-create-custom-analyzer.md
A valid API key establishes trust, on a per request basis, between the applicati
```http ### Create a new index
- POST {{baseUrl}}/indexes?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/indexes?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
A valid API key establishes trust, on a per request basis, between the applicati
```http ### Load documents
- POST {{baseUrl}}/indexes/phone-numbers-index/docs/index?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/indexes/phone-numbers-index/docs/index?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
A valid API key establishes trust, on a per request basis, between the applicati
```http ### Search for a phone number
- GET {{baseUrl}}/indexes/phone-numbers-index/docs/search?api-version=2023-11-01&search=(425) 555-0100 HTTP/1.1
+ GET {{baseUrl}}/indexes/phone-numbers-index/docs/search?api-version=2024-07-01&search=(425) 555-0100 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}} ```
A valid API key establishes trust, on a per request basis, between the applicati
```http ### Search for a phone number
- GET {{baseUrl}}/indexes/phone-numbers-index/docs/search?api-version=2023-11-01&search=4255550100 HTTP/1.1
+ GET {{baseUrl}}/indexes/phone-numbers-index/docs/search?api-version=2024-07-01&search=4255550100 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}} ```
Azure AI Search provides an [Analyze API](/rest/api/searchservice/indexes/analyz
The Analyze API is called using the following request: ```http
-POST {{baseUrl}}/indexes/phone-numbers-index/analyze?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes/phone-numbers-index/analyze?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
All of the tokens in the output column exist in the index. If our query includes
```http ### Delete the index
- DELETE {{baseUrl}}/indexes/phone-numbers-index?api-version=2023-11-01 HTTP/1.1
+ DELETE {{baseUrl}}/indexes/phone-numbers-index?api-version=2024-07-01 HTTP/1.1
api-key: {{apiKey}} ```
All of the tokens in the output column exist in the index. If our query includes
```http ### Create a new index
- POST {{baseUrl}}/indexes?api-version=2023-11-01 HTTP/1.1
+ POST {{baseUrl}}/indexes?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
All of the tokens in the output column exist in the index. If our query includes
After recreating the index, you can now test out the analyzer using the following request: ```http
-POST {{baseUrl}}/indexes/tutorial-first-analyzer/analyze?api-version=2023-11-01 HTTP/1.1
+POST {{baseUrl}}/indexes/tutorial-first-analyzer/analyze?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{apiKey}}
search Vector Search Filters https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/vector-search-filters.md
- ignite-2023 Previously updated : 02/14/2024 Last updated : 08/05/2024 # Filters in vector queries
-You can set a [**vector filter modes on a vector query**](vector-search-how-to-query.md) to specify whether you want filtering before or after query execution.
+You can set a vector filter modes on a vector query to specify whether you want filtering before or after query execution.
Filters determine the scope of a vector query. Filters are set on and iterate over nonvector string and numeric fields attributed as `filterable` in the index, but the purpose of a filter determines *what* the vector query executes over: the entire searchable space, or the contents of a search result.
-This article describes each filter mode and provides guidance on when to use each one.
+This article provides conceptual information, describing each filter mode and providing guidance on when to use each one.
+
+For instructions on setting up the vector filter in your query, see [Vector query with filter](vector-search-how-to-query.md#vector-query-with-filter).
## Prefilter mode
search Vector Search How To Chunk Documents https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/vector-search-how-to-chunk-documents.md
- ignite-2023 Previously updated : 02/22/2024 Last updated : 08/05/2024
-# Chunking large documents for vector search solutions in Azure AI Search
+# Chunk large documents for vector search solutions in Azure AI Search
Partitioning large documents into smaller chunks can help you stay under the maximum token input limits of embedding models. For example, the maximum length of input text for the [Azure OpenAI](/azure/ai-services/openai/how-to/embeddings) embedding models is 8,191 tokens. Given that each token is around four characters of text for common OpenAI models, this maximum limit is equivalent to around 6,000 words of text. If you're using these models to generate embeddings, it's critical that the input text stays under the limit. Partitioning your content into chunks ensures that your data can be processed by the embedding models used to populate vector stores and text-to-vector query conversions.
-This article describes several approaches for data chunking. Chunking is only required if source documents are too large for the maximum input size imposed by models.
+Chunking is only required if source documents are too large for the maximum input size imposed by models.
-> [!NOTE]
-> If you're using the generally available version of [vector search](vector-search-overview.md), data chunking and embedding requires external code, such as library or a custom skill. A new feature called [integrated vectorization](vector-search-integrated-vectorization.md), currently in preview, offers internal data chunking and embedding. Integrated vectorization takes a dependency on indexers, skillsets, the Text Split skill, and the AzureOpenAiEmbedding skill (or a custom skill). If you can't use the preview features, the examples in this article provide an alternative path forward.
+We recommend [integrated vectorization](vector-search-integrated-vectorization.md) for built-in data chunking and embedding. Integrated vectorization takes a dependency on indexers, skillsets, the Text Split skill, and an embedding skill. If you can't use integrated vectorization, this article describes some approaches for chunking your content.
## Common chunking techniques
When it comes to chunking data, think about these factors:
### How chunking fits into the workflow
-If you have large documents, you must insert a chunking step into indexing and query workflows that breaks up large text. When using [integrated vectorization (preview)](vector-search-integrated-vectorization.md), a default chunking strategy using the [text split skill](./cognitive-search-skill-textsplit.md) is applied. You can also apply a custom chunking strategy using a [custom skill](cognitive-search-custom-skill-web-api.md). Some libraries that provide chunking include:
+If you have large documents, you must insert a chunking step into indexing and query workflows that breaks up large text. When using [integrated vectorization](vector-search-integrated-vectorization.md), a default chunking strategy using the [Text Split skill](./cognitive-search-skill-textsplit.md) is applied. You can also apply a custom chunking strategy using a [custom skill](cognitive-search-custom-skill-web-api.md). Some libraries that provide chunking include:
+ [LangChain Text Splitters](https://python.langchain.com/docs/modules/data_connection/document_transformers/) + [Semantic Kernel TextChunker](/dotnet/api/microsoft.semantickernel.text.textchunker)
Most libraries provide common chunking techniques for fixed size, variable size,
The following examples demonstrate how chunking strategies are applied to [NASA's Earth at Night e-book](https://github.com/Azure-Samples/azure-search-sample-data/blob/main/nasa-e-book/earth_at_night_508.pdf) PDF file:
-+ [Text Split skill (preview](#text-split-skill-example)
++ [Text Split skill](#text-split-skill-example) + [LangChain](#langchain-data-chunking-example) + [Custom skill](cognitive-search-custom-skill-scale.md) ### Text Split skill example
-Integrated data chunking through [Text Split skill](cognitive-search-skill-textsplit.md) is in public preview. Use a preview REST API or an Azure SDK beta package for this scenario.
+Integrated data chunking through [Text Split skill](cognitive-search-skill-textsplit.md) is generally available.
-This section describes the built-in data chunking using a skills-driven approach and [Text Split skill parameters](cognitive-search-skill-textsplit.md#skill-parameters).
+This section describes built-in data chunking using a skills-driven approach and [Text Split skill parameters](cognitive-search-skill-textsplit.md#skill-parameters).
A sample notebook for this example can be found on the [azure-search-vector-samples](https://github.com/Azure/azure-search-vector-samples/blob/main/demo-python/code/data-chunking/textsplit-data-chunking-example.ipynb) repository. Set `textSplitMode` to break up content into smaller chunks:
search Vector Search How To Configure Compression Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/vector-search-how-to-configure-compression-storage.md
Title: Reduce vector size
-description: Configure vector compression options and vector storage using narrow data types, built-in scalar quantization, and storage options.
+description: Configure vector compression options and vector storage using narrow data types, built-in scalar or quantization, and storage options.
Previously updated : 06/28/2024 Last updated : 08/05/2024
-# Configure vector quantization and reduced storage for smaller vectors in Azure AI Search
+# Reduce vector size through quantization, narrow data types, and storage options
-> [!IMPORTANT]
-> These features are in public preview under [Supplemental Terms of Use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). The [2024-03-01-preview REST API](/rest/api/searchservice/operation-groups?view=rest-searchservice-2024-03-01-preview&preserve-view=true) and later preview APIs provide the new data types, vector compression properties, and the `stored` property. We recommend using the latest preview APIs.
+This article explains how to use vector quantization and other techniques for reducing vector size in Azure AI Search. The search index specifies vector field definitions, including properties for stored and narrow data types. Quantization is also specified in the index and assigned to vector field through its vector profile.
-This article describes vector quantization and other techniques for compressing vector indexes in Azure AI Search.
+These features are generally available in [2024-07-01 REST API](/rest/api/searchservice/operation-groups?view=rest-searchservice-2024-07-01&preserve-view=true) and in the Azure SDK packages targeting that version. [An example](#example-vector-compression-techniques) at the end of this article shows the variations in vector size for each of the approaches described in this article.
## Evaluate the options
-As a first step, review the three options for reducing the amount of storage used by vector fields. These options aren't mutually exclusive.
+As a first step, review the three approaches for reducing the amount of storage used by vector fields. These approaches aren't mutually exclusive and can be combined for [maximum reduction in vector size](#example-vector-compression-techniques).
-We recommend scalar quantization because it compresses vector size in memory and on disk with minimal effort, and that tends to provide the most benefit in most scenarios. In contrast, narrow types (except for `Float16`) require a special effort into making them, and `stored` saves on disk storage, which isn't as expensive as memory.
+We recommend built-in quantization because it compresses vector size in memory *and* on disk with minimal effort, and that tends to provide the most benefit in most scenarios. In contrast, narrow types (except for float16) require a special effort into making them, and `stored` saves on disk storage, which isn't as expensive as memory.
| Approach | Why use this option | |-||
-| [Add scalar quantization](#option-1-configure-scalar-quantization) | Use built-in scalar quantization to compress native `Float32` embeddings to `Int8`. This option reduces storage in memory and on disk with no degradation of query performance. Smaller data types like `Int8` produce vector indexes that are less content-rich than those with `Float32` embeddings. To offset information loss, built-in compression includes options for post-query processing using uncompressed embeddings and oversampling to return more relevant results. Reranking and oversampling are specific features of built-in scalar quantization of `Float32` or `Float16` fields and can't be used on embeddings that undergo custom quantization. |
-| [Assign smaller primitive data types to vector fields](#option-2-assign-narrow-data-types-to-vector-fields) | Narrow data types, such as `Float16`, `Int16`, `Int8`, and `byte` (binary) consume less space in memory and on disk, but you must have an embedding model that outputs vectors in a narrow data format. Or, you must have custom quantization logic that outputs small data. A third use case that requires less effort is recasting native `Float32` embeddings produced by most models to `Float16`. See [Index binary vectors](vector-search-how-to-index-binary-data.md) for details about binary vectors. |
+| [Add scalar or binary quantization](#option-1-configure-quantization) | Use quantization to compress native float32 or float16 embeddings to int8 (scalar) or Byte (binary). This option reduces storage in memory and on disk with no degradation of query performance. Smaller data types like int8 or Byte produce vector indexes that are less content-rich than those with larger embeddings. To offset information loss, built-in compression includes options for post-query processing using uncompressed embeddings and oversampling to return more relevant results. Reranking and oversampling are specific features of built-in quantization of float32 or float16 fields and can't be used on embeddings that undergo custom quantization. |
+| [Assign smaller primitive data types to vector fields](#option-2-assign-narrow-data-types-to-vector-fields) | Narrow data types, such as float16, int16, int8, and Byte (binary) consume less space in memory and on disk, but you must have an embedding model that outputs vectors in a narrow data format. Or, you must have custom quantization logic that outputs small data. A third use case that requires less effort is recasting native float32 embeddings produced by most models to float16. See [Index binary vectors](vector-search-how-to-index-binary-data.md) for details about binary vectors. |
| [Eliminate optional storage of retrievable vectors](#option-3-set-the-stored-property-to-remove-retrievable-storage) | Vectors returned in a query response are stored separately from vectors used during query execution. If you don't need to return vectors, you can turn off retrievable storage, reducing overall per-field disk storage by up to 50 percent. |
-All of these options are defined on an empty index. To implement any of them, use the Azure portal, [2024-03-01-preview REST APIs](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-03-01-preview&preserve-view=true), or a beta Azure SDK package.
+All of these options are defined on an empty index. To implement any of them, use the Azure portal, REST APIs, or an Azure SDK package targeting that API version.
After the index is defined, you can load and index documents as a separate step.
-## Option 1: Configure scalar quantization
+## Option 1: Configure quantization
-Built-in scalar quantization is recommended because it reduces memory and disk storage requirements, and it adds reranking and oversampling to offset the effects of a smaller index. Built-in scalar quantization can be applied to vector fields containing `Float32` or `Float16` data.
+Quantization is recommended for reducing vector size because it lowers both memory and disk storage requirements for float16 and float32 embeddings. To offset the effects of a smaller index, you can add oversampling and reranking over uncompressed vectors.
-To use built-in vector compression:
+Quantization applies to vector fields receiving float-type vectors. In the examples in this article, the field's data type is `Collection(Edm.Single)` for incoming float32 embeddings, but float16 is also supported. When the vectors are received on a field with compression configured, the engine automatically performs quantization to reduce the footprint of the vector data in memory and on disk.
-+ Add `vectorSearch.compressions` to a search index. The compression algorithm supported in this preview is *scalar quantization*.
-+ Set optional properties to mitigate the effects of lossy indexing. Both `rerankWithOriginalVectors` and `defaultOversampling` provide optimizations during query execution.
-+ Add `vectorSearch.profiles.compression` to a new vector profile.
-+ Assign the new vector profile to a new vector field.
+Two types of quantization are supported:
-### Add compression settings and set optional properties
+- Scalar quantization compresses floats into narrower data types. AI Search currently supports int8, which is 8 bits, reducing vector index size fourfold.
-In an index definition created using [2024-03-01-preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-03-01-preview&preserve-view=true), add a `compressions` section. Use the following JSON as a template.
+- Binary quantization converts floats into binary bits, which takes up 1 bit. This results in up to 28 times reduced vector index size.
-```json
-"compressions": [
+To use built-in quantization, follow these steps:
-ΓÇ» ΓÇ» ΓÇ» {ΓÇ»
-ΓÇ» ΓÇ» ΓÇ» ΓÇ» "name": "my-scalar-quantization",ΓÇ»
-ΓÇ» ΓÇ» ΓÇ» ΓÇ» "kind": "scalarQuantization",ΓÇ»
-ΓÇ» ΓÇ» ΓÇ» ΓÇ» "rerankWithOriginalVectors": true,ΓÇ» (optional)
-ΓÇ» ΓÇ» ΓÇ» ΓÇ» "defaultOversampling": 10.0,ΓÇ» (optional)
-        "scalarQuantizationParameters": {  (optional)
-          "quantizedDataType": "int8",  (optional)
-       }
-ΓÇ» ΓÇ» ΓÇ» }ΓÇ»
-ΓÇ» ΓÇ»]
+> [!div class="checklist"]
+> - Use [Create Index](/rest/api/searchservice/indexes/create) or [Create Or Update Index](/rest/api/searchservice/indexes/create-or-update) to specify vector compression
+> - Add `vectorSearch.compressions` to a search index
+> - Add a `scalarQuantization` or `binaryQuantization` configuration and give it a name
+> - Set optional properties to mitigate the effects of lossy indexing
+> - Create a new vector profile that uses the named configuration
+> - Create a new vector field having the new vector profile
+> - Load the index with float32 or float16 data that's quantized during indexing with the configuration you defined
+> - Optionally, [query quantized data](#query-a-quantized-vector-field-using-oversampling) using the oversampling parameter if you want to override the default
+
+### Add "compressions" to a search index
+
+The following example shows a partial index definition with a fields collection that includes a vector field, and a `vectorSearch.compressions` section.
+
+This example includes both `scalarQuantization` or `binaryQuantization`. You can specify as many compression configurations as you need, and then assign the ones you want to a vector profile.
+
+```http
+POST https://[servicename].search.windows.net/indexes?api-version=2024-07-01
+
+{
+ "name": "my-index",
+ "fields": [
+ { "name": "Id", "type": "Edm.String", "key": true, "retrievable": true, "searchable": true, "filterable": true },
+ { "name": "content", "type": "Edm.String", "retrievable": true, "searchable": true },
+ { "name": "vectorContent", "type": "Collection(Edm.Single)", "retrievable": false, "searchable": true },
+ ],
+ "vectorSearch": {
+ "profiles": [ ],
+ "algorithms": [ ],
+ "compressions": [
+ {
+ "name": "use-scalar",
+ "kind": "scalarQuantization",
+ "scalarQuantizationParameters": {
+ "quantizedDataType": "int8"
+ },
+ "rerankWithOriginalVectors": true,
+ "defaultOversampling": 10
+ },
+ {
+ "name": "use-binary",
+ "kind": "binaryQuantization",
+ "rerankWithOriginalVectors": true,
+ "defaultOversampling": 10
+ }
+ ]
+ }
+}
``` **Key points**:
-+ `kind` must be set to `scalarQuantization`. This is the only quantization method supported at this time.
+- `kind` must be set to `scalarQuantization` or `binaryQuantization`
+
+- `rerankWithOriginalVectors` uses the original, uncompressed vectors to recalculate similarity and rerank the top results returned by the initial search query. The uncompressed vectors exist in the search index even if `stored` is false. This property is optional. Default is true.
+
+- `defaultOversampling` considers a broader set of potential results to offset the reduction in information from quantization. The formula for potential results consists of the `k` in the query, with an oversampling multiplier. For example, if the query specifies a `k` of 5, and oversampling is 20, then the query effectively requests 100 documents for use in reranking, using the original uncompressed vector for that purpose. Only the top `k` reranked results are returned. This property is optional. Default is 4.
-+ `rerankWithOriginalVectors` uses the original, uncompressed vectors to recalculate similarity and rerank the top results returned by the initial search query. The uncompressed vectors exist in the search index even if `stored` is false. This property is optional. Default is true.
+- `quantizedDataType` is optional and applies to scalar quantization only. If you add it, it must be set to `int8`. This is the only primitive data type supported for scalar quantization at this time. Default is `int8`.
-+ `defaultOversampling` considers a broader set of potential results to offset the reduction in information from quantization. The formula for potential results consists of the `k` in the query, with an oversampling multiplier. For example, if the query specifies a `k` of 5, and oversampling is 20, then the query effectively requests 100 documents for use in reranking, using the original uncompressed vector for that purpose. Only the top `k` reranked results are returned. This property is optional. Default is 4.
+### Add the HNSW algorithm
-+ `quantizedDataType` must be set to `int8`. This is the only primitive data type supported at this time. This property is optional. Default is `int8`.
+Make sure your index has the Hierarchical Navigable Small Worlds (HNSW) algorithm. Built-in quantization isn't supported with exhaustive KNN.
-### Add a compression setting to a vector profile
+ ```json
+ "vectorSearch": {
+ "profiles": [ ],
+ "algorithms": [
+ {
+ "name": "use-hnsw",
+ "kind": "hnsw",
+ "hnswParameters": {
+ "m": 4,
+ "efConstruction": 400,
+ "efSearch": 500,
+ "metric": "cosine"
+ }
+ }
+ ],
+ "compressions": [ <see previous section>]
+ }
+ ```
-Scalar quantization is specified as a property in a *new* vector profile. Creation of a new vector profile is necessary for building compressed indexes in memory.
+### Create and assign a new vector profile
-Within the profile, you must use the Hierarchical Navigable Small Worlds (HNSW) algorithm. Built-in quantization isn't supported with exhaustive KNN.
+To use a new quantization configuration, you must create a *new* vector profile. Creation of a new vector profile is necessary for building compressed indexes in memory. Your new profile uses HNSW.
-1. Create a new vector profile and add a compression property.
+1. In the same index definition, create a new vector profile and add a compression property and an algorithm. Here are two profiles, one for each quantization approach.
```json
- "profiles": [
- {
- "name": "my-vector-profile",
- "compression": "my-scalar-quantization",ΓÇ»
- "algorithm": "my-hnsw-vector-config-1",
- "vectorizer": null
- }
- ]
+ "vectorSearch": {
+ "profiles": [
+ {
+ "name": "vector-profile-hnsw-scalar",
+ "compression": "use-scalar",ΓÇ»
+ "algorithm": "use-hnsw",
+ "vectorizer": null
+ },
+ {
+ "name": "vector-profile-hnsw-binary",
+ "compression": "use-binary",ΓÇ»
+ "algorithm": "use-hnsw",
+ "vectorizer": null
+ }
+ ],
+ "algorithms": [ <see previous section> ],
+ "compressions": [ <see previous section> ]
+ }
```
-1. Assign a vector profile to a *new* vector field. Scalar quantization reduces content to `Int8`, so make sure your content is either `Float32` or `Float16`.
+1. Assign a vector profile to a *new* vector field. The data type of the field is either float32 or float16.
- In Azure AI Search, the Entity Data Model (EDM) equivalents of `Float32` and `Float16` types are `Collection(Edm.Single)` and `Collection(Edm.Half)`, respectively.
+ In Azure AI Search, the Entity Data Model (EDM) equivalents of float32 and float16 types are `Collection(Edm.Single)` and `Collection(Edm.Half)`, respectively.
```json {
- "name": "DescriptionVector",
+ "name": "vectorContent",
"type": "Collection(Edm.Single)", "searchable": true, "retrievable": true, "dimensions": 1536,
- "vectorSearchProfile": "my-vector-profile"
+ "vectorSearchProfile": "vector-profile-hnsw-scalar",
} ```
Within the profile, you must use the Hierarchical Navigable Small Worlds (HNSW)
### How scalar quantization works in Azure AI Search
-Scalar quantization reduces the resolution of each number within each vector embedding. Instead of describing each number as a 32-bit floating point number, it uses an 8-bit integer. It identifies a range of numbers (typically 99th percentile minimum and maximum) and divides them into a finite number of levels or bin, assigning each bin an identifier. In 8-bit scalar quantization, there are 2^8, or 256, possible bins.
+Scalar quantization reduces the resolution of each number within each vector embedding. Instead of describing each number as a 16-bit or 32-bit floating point number, it uses an 8-bit integer. It identifies a range of numbers (typically 99th percentile minimum and maximum) and divides them into a finite number of levels or bin, assigning each bin an identifier. In 8-bit scalar quantization, there are 2^8, or 256, possible bins.
Each component of the vector is mapped to the closest representative value within this set of quantization levels in a process akin to rounding a real number to the nearest integer. In the quantized 8-bit vector, the identifier number stands in place of the original value. After quantization, each vector is represented by an array of identifiers for the bins to which its components belong. These quantized vectors require much fewer bits to store compared to the original vector, thus reducing storage requirements and memory footprint.
-## Option 2: Assign narrow data types to vector fields
-
-Vector fields store vector embeddings, which are represented as an array of numbers. When you specify a field type, you specify the underlying primitive data type used to hold each number within these arrays. The data type affects how much space each number takes up.
+### How binary quantization works in Azure AI Search
-Using preview APIs, you can assign narrow primitive data types to reduce the storage requirements of vector fields.
+Binary quantization compresses high-dimensional vectors by representing each component as a single bit, either 0 or 1. This method drastically reduces the memory footprint and accelerates vector comparison operations, which are crucial for search and retrieval tasks. Benchmark tests show up to 96% reduction in vector index size.
-1. Review the [data types for vector fields](/rest/api/searchservice/supported-data-types#edm-data-types-for-vector-fields):
+It's particularly effective for embeddings with dimensions greater than 1024. For smaller dimensions, we recommend testing the quality of binary quantization, or trying scalar instead. Additionally, weΓÇÖve found BQ performs very well when embeddings are centered around zero. Most popular embedding models such as OpenAI, Cohere, and Mistral are centered around zero.
- + `Collection(Edm.Single)` 32-bit floating point (default)
- + `Collection(Edm.Half)` 16-bit floating point
- + `Collection(Edm.Int16)` 16-bit signed integer
- + `Collection(Edm.SByte)` 8-bit signed integer
+## Option 2: Assign narrow data types to vector fields
- > [!NOTE]
- > Binary data types aren't currently supported.
+An easy way to reduce vector size is to store embeddings in a smaller data format. Most embedding models output 32-bit floating point numbers, but if you quantize your vectors, or if your embedding model supports it natively, output might be float16, int16, or int8, which is significantly smaller than float32. You can accommodate these smaller vector sizes by assigning a narrow data type to a vector field. In the vector index, narrow data types consume less storage.
-1. Choose a data type that's valid for your embedding model's output, or for vectors that undergo custom quantization.
+1. Review the [data types used for vector fields](/rest/api/searchservice/supported-data-types#edm-data-types-for-vector-fields) for recommended usage:
- Most embedding models output 32-bit floating point numbers, but if you apply custom quantization, your output might be `Int16` or `Int8`. You can now define vector fields that accept the smaller format.
+ - `Collection(Edm.Single)` 32-bit floating point (default)
+ - `Collection(Edm.Half)` 16-bit floating point (narrow)
+ - `Collection(Edm.Int16)` 16-bit signed integer (narrow)
+ - `Collection(Edm.SByte)` 8-bit signed integer (narrow)
+ - `Collection(Edm.Byte)` 8-bit unsigned integer (only allowed with packed binary data types)
- Text embedding models have a native output format of `Float32`, which maps to `Collection(Edm.Single)` in Azure AI Search. You can't map that output to `Int8` because casting from `float` to `int` is prohibited. However, you can cast from `Float32` to `Float16` (or `Collection(Edm.Half)`), and this is an easy way to use narrow data types without extra work.
+1. From that list, determine which data type is valid for your embedding model's output, or for vectors that undergo custom quantization.
- The following table provides links to several embedding models that use the narrow data types.
+ The following table provides links to several embedding models that can use a narrow data type (`Collection(Edm.Half)`) without extra quantization. You can cast from float32 to float16 (using `Collection(Edm.Half)`) with no extra work.
- | Embedding model | Native output | Valid types in Azure AI Search |
+ | Embedding model | Native output | Assign this type in Azure AI Search |
|||--| | [text-embedding-ada-002](/azure/ai-services/openai/concepts/models#embeddings) | `Float32` | `Collection(Edm.Single)` or `Collection(Edm.Half)` | | [text-embedding-3-small](/azure/ai-services/openai/concepts/models#embeddings) | `Float32` | `Collection(Edm.Single)` or `Collection(Edm.Half)` | | [text-embedding-3-large](/azure/ai-services/openai/concepts/models#embeddings) | `Float32` | `Collection(Edm.Single)` or `Collection(Edm.Half)` | | [Cohere V3 embedding models with int8 embedding_type](https://docs.cohere.com/reference/embed) | `Int8` | `Collection(Edm.SByte)` |
+ Other narrow data types can be used if your model emits embeddings in the smaller data format, or if you have custom quantization that converts vectors to a smaller format.
+ 1. Make sure you understand the tradeoffs of a narrow data type. `Collection(Edm.Half)` has less information, which results in lower resolution. If your data is homogenous or dense, losing extra detail or nuance could lead to unacceptable results at query time because there's less detail that can be used to distinguish nearby vectors apart.
-1. [Define and build the index](vector-search-how-to-create-index.md). You can use the Azure portal, [2024-03-01-preview](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-03-01-preview&preserve-view=true), or a beta Azure SDK package for this step.
+1. [Define and build the index](vector-search-how-to-create-index.md). You can use the Azure portal, [Create or Update Index (REST API)](/rest/api/searchservice/indexes/create-or-update), or an Azure SDK package for this step.
+
+1. Check the results. Assuming the vector field is marked as retrievable, use [Search explorer](search-explorer.md) or [Search - POST](/rest/api/searchservice/documents/search-post?) to verify the field content matches the data type.
+
+ To check vector index size, use the Azure portal or the [GET Statistics (REST API)](/rest/api/searchservice/indexes/get-statistics).
-1. Check the results. Assuming the vector field is marked as retrievable, use [Search explorer](search-explorer.md) or [REST API](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-03-01-preview&preserve-view=true) to verify the field content matches the data type. Be sure to use the correct `2024-03-01-preview` API version for the query, otherwise the new properties aren't shown.
<!-- Evidence of choosing the wrong data type, for example choosing `int8` for a `float32` embedding, is a field that's indexed as an array of zeros. If you encounter this problem, start over. -->
- To check vector index size, use the Azure portal or the [2024-03-01-preview](/rest/api/searchservice/indexes/get-statistics?view=rest-searchservice-2024-03-01-preview&preserve-view=true).
- > [!NOTE] > The field's data type is used to create the physical data structure. If you want to change a data type later, either drop and rebuild the index, or create a second field with the new definition. ## Option 3: Set the `stored` property to remove retrievable storage
-The `stored` property is a new boolean on a vector field definition that determines whether storage is allocated for retrievable vector field content. The `stored` property is set to true by default. If you don't need vector content in a query response, you can save up to 50 percent storage per field by setting `stored` to false.
+The `stored` property is a boolean on a vector field definition that determines whether storage is allocated for retrievable vector field content. The `stored` property is true by default. If you don't need vector content in a query response, you can save up to 50 percent storage per field by setting `stored` to false.
-When evaluating whether to set this property, consider whether you need vectors in the response. Because vectors aren't human readable, they're typically omitted in a query response that's rendered on a search page. However, if you're using vectors in downstream processing, such as passing query results to a model or process that consumes vector content, you should keep `stored` set to true and choose a different technique for minimizing vector size.
+When evaluating whether to set this property, consider whether you need vectors in the response. Because vectors aren't human readable, they can be omitted in a query response that's rendered on a search page. Keep them, however, if you're using vectors in downstream process that consumes vector content.
Remember that the `stored` attribution is irreversible. It's set during index creation on vector fields when physical data structures are created. If you want retrievable vector content later, you must drop and rebuild the index, or create and load a new field that has the new attribution. The following example shows the fields collection of a search index. Set `stored` to false to permanently remove retrievable storage for the vector field. ```http
- PUT https://[service-name].search.windows.net/indexes/[index-name]?api-version=2024-05-01-previewΓÇ»
+ PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2024-07-01
ΓÇ» Content-Type: application/jsonΓÇ» ΓÇ» api-key: [admin key]ΓÇ» {
- ΓÇ» "name": "myindex",
+ ΓÇ» "name": "demo-index",
ΓÇ» "fields": [ ΓÇ» ΓÇ» {
- ΓÇ» ΓÇ» ΓÇ» "name": "myvector",
+ ΓÇ» ΓÇ» ΓÇ» "name": "vectorContent",
ΓÇ» ΓÇ» ΓÇ» "type": "Collection(Edm.Single)", ΓÇ» ΓÇ» ΓÇ» "retrievable": false, ΓÇ» ΓÇ» ΓÇ» "stored": false,
The following example shows the fields collection of a search index. Set `stored
**Key points**:
-+ Applies to [vector fields](/rest/api/searchservice/supported-data-types#edm-data-types-for-vector-fields) only.
-
-+ Affects storage on disk, not memory, and it has no effect on queries. Query execution uses a separate vector index that's unaffected by the `stored` property.
-
-+ The `stored` property is set during index creation on vector fields and is irreversible. If you want retrievable content later, you must drop and rebuild the index, or create and load a new field that has the new attribution.
-
-+ Defaults are `stored` set to true and `retrievable` set to false. In a default configuration, a retrievable copy is stored, but it's not automatically returned in results. When `stored` is true, you can toggle `retrievable` between true and false at any time without having to rebuild an index. When `stored` is false, `retrievable` must be false and can't be changed.
-
-## Example index with vectorCompression, data types, and stored property
-
-Here's a composite example of a search index that specifies narrow data types, reduced storage, and vector compression.
-
-+ "HotelNameVector" provides a narrow data type example, recasting the original `Float32` values to `Float16`, expressed as `Collection(Edm.Half)` in the search index.
-+ "HotelNameVector" also has `stored` set to false. Extra embeddings used in a query response are not stored. When `stored` is false, `retrievable` must also be false.
-+ "DescriptionVector" provides an example of vector compression. Vector compression is defined in the index, referenced in a profile, and then assigned to a vector field. "DescriptionVector" also has `stored` set to false.
-
-```json
-### Create a new index
-POST {{baseUrl}}/indexes?api-version=2024-03-01-preview HTTP/1.1
- Content-Type: application/json
- api-key: {{apiKey}}
-
-{
- "name": "hotels-vector-quickstart",
- "fields": [
- {
- "name": "HotelId",
- "type": "Edm.String",
- "searchable": false,
- "filterable": true,
- "retrievable": true,
- "sortable": false,
- "facetable": false,
- "key": true
- },
- {
- "name": "HotelName",
- "type": "Edm.String",
- "searchable": true,
- "filterable": false,
- "retrievable": true,
- "sortable": true,
- "facetable": false
- },
- {
- "name": "HotelNameVector",
- "type": "Collection(Edm.Half)",
- "searchable": true,
- "retrievable": false,
- "dimensions": 1536,
- "stored": false,
- "vectorSearchProfile": "my-vector-profile-no-compression"
- },
- {
- "name": "Description",
- "type": "Edm.String",
- "searchable": true,
- "filterable": false,
- "retrievable": false,
- "sortable": false,
- "facetable": false
- },
- {
- "name": "DescriptionVector",
- "type": "Collection(Edm.Single)",
- "searchable": true,
- "retrievable": false,
- "dimensions": 1536,
- "stored": false,
- "vectorSearchProfile": "my-vector-profile-with-compression"
- },
- {
- "name": "Category",
- "type": "Edm.String",
- "searchable": true,
- "filterable": true,
- "retrievable": true,
- "sortable": true,
- "facetable": true
- },
- {
- "name": "Tags",
- "type": "Collection(Edm.String)",
- "searchable": true,
- "filterable": true,
- "retrievable": true,
- "sortable": false,
- "facetable": true
- },
- {
- "name": "Address",
- "type": "Edm.ComplexType",
- "fields": [
- {
- "name": "City", "type": "Edm.String",
- "searchable": true, "filterable": true, "retrievable": true, "sortable": true, "facetable": true
- },
- {
- "name": "StateProvince", "type": "Edm.String",
- "searchable": true, "filterable": true, "retrievable": true, "sortable": true, "facetable": true
- }
- ]
- },
- {
- "name": "Location",
- "type": "Edm.GeographyPoint",
- "searchable": false,
- "filterable": true,
- "retrievable": true,
- "sortable": true,
- "facetable": false
- }
- ],
-"vectorSearch": {
- "compressions": [
- {
- "name": "my-scalar-quantization",
- "kind": "scalarQuantization",
- "rerankWithOriginalVectors": true,
- "defaultOversampling": 10.0,
- "scalarQuantizationParameters": {
- "quantizedDataType": "int8"
- }
- }
- ],
- "algorithms": [
- {
- "name": "my-hnsw-vector-config-1",
- "kind": "hnsw",
- "hnswParameters":
- {
- "m": 4,
- "efConstruction": 400,
- "efSearch": 500,
- "metric": "cosine"
- }
- },
- {
- "name": "my-hnsw-vector-config-2",
- "kind": "hnsw",
- "hnswParameters":
- {
- "m": 4,
- "metric": "euclidean"
- }
- },
- {
- "name": "my-eknn-vector-config",
- "kind": "exhaustiveKnn",
- "exhaustiveKnnParameters":
- {
- "metric": "cosine"
- }
- }
- ],
- "profiles": [
- {
- "name": "my-vector-profile-with-compression",
- "compression": "my-scalar-quantization",
- "algorithm": "my-hnsw-vector-config-1",
- "vectorizer": null
- },
- {
- "name": "my-vector-profile-no-compression",
- "compression": null,
- "algorithm": "my-eknn-vector-config",
- "vectorizer": null
- }
- ]
-},
- "semantic": {
- "configurations": [
- {
- "name": "my-semantic-config",
- "prioritizedFields": {
- "titleField": {
- "fieldName": "HotelName"
- },
- "prioritizedContentFields": [
- { "fieldName": "Description" }
- ],
- "prioritizedKeywordsFields": [
- { "fieldName": "Tags" }
- ]
- }
- }
- ]
- }
-}
+- Applies to [vector fields](/rest/api/searchservice/supported-data-types#edm-data-types-for-vector-fields) only.
+
+- Affects storage on disk, not memory, and it has no effect on queries. Query execution uses a separate vector index that's unaffected by the `stored` property.
+
+- The `stored` property is set during index creation on vector fields and is irreversible. If you want retrievable content later, you must drop and rebuild the index, or create and load a new field that has the new attribution.
+
+- Defaults are `stored` set to true and `retrievable` set to false. In a default configuration, a retrievable copy is stored, but it's not automatically returned in results. When `stored` is true, you can toggle `retrievable` between true and false at any time without having to rebuild an index. When `stored` is false, `retrievable` must be false and can't be changed.
+
+## Example: vector compression techniques
+
+Here's Python code that demonstrates quantization, narrow data types, and use of the stored property: [Code sample: Vector quantization and storage options using Python](https://github.com/Azure/azure-search-vector-samples/blob/main/demo-python/code/vector-quantization-and-storage/README.md).
+
+This code creates and compares storage and vector index size for each option:
+
+```bash
+****************************************
+Index Name: compressiontest-baseline
+Storage Size: 21.3613MB
+Vector Size: 4.8277MB
+****************************************
+Index Name: compressiontest-compression
+Storage Size: 17.7604MB
+Vector Size: 1.2242MB
+****************************************
+Index Name: compressiontest-narrow
+Storage Size: 16.5567MB
+Vector Size: 2.4254MB
+****************************************
+Index Name: compressiontest-no-stored
+Storage Size: 10.9224MB
+Vector Size: 4.8277MB
+****************************************
+Index Name: compressiontest-all-options
+Storage Size: 4.9192MB
+Vector Size: 1.2242MB
```
+Search APIs report storage and vector size at the index level, so indexes and not fields must be the basis of comparison. Use the [GET Index Statistics](/rest/api/searchservice/indexes/get-statistics) or an equivalent API in the Azure SDKs to obtain vector size.
+ ## Query a quantized vector field using oversampling
-The query syntax in this example applies to vector fields using built-in scalar quantization. By default, vector fields that use scalar quantization also use `rerankWithOriginalVectors` and `defaultOversampling` to mitigate the effects of a smaller vector index. Those settings are [specified in the search index](#add-compression-settings-and-set-optional-properties).
+Query syntax for a compressed or quantized vector field is the same as for non-compressed vector fields, unless you want to override parameters associated with oversampling or reranking with original vectors.
-On the query, you can override the oversampling default value. For example, if `defaultOversampling` is 10.0, you can change it to something else in the query request.
+Recall that the [vector compression definition](#add-compressions-to-a-search-index) in the index has settings for `rerankWithOriginalVectors` and `defaultOversampling` to mitigate the effects of a smaller vector index. You can override the default values to vary the behavior at query time. For example, if `defaultOversampling` is 10.0, you can change it to something else in the query request.
You can set the oversampling parameter even if the index doesn't explicitly have a `rerankWithOriginalVectors` or `defaultOversampling` definition. Providing `oversampling` at query time overrides the index settings for that query and executes the query with an effective `rerankWithOriginalVectors` as true. ```http
-POST https://[service-name].search.windows.net/indexes/[index-name]/docs/search?api-version=2024-05-01-Preview  
+POST https://[service-name].search.windows.net/indexes/demo-index/docs/search?api-version=2024-07-01  
  Content-Type: application/json     api-key: [admin key]  
POST https://[service-name].search.windows.net/indexes/[index-name]/docs/search?
**Key points**:
-+ Applies to vector fields that undergo vector compression, per the vector profile assignment.
+- Applies to vector fields that undergo vector compression, per the vector profile assignment.
-+ Overrides the `defaultOversampling` value or introduces oversampling at query time, even if the index's compression configuration didn't specify oversampling or reranking options.
+- Overrides the `defaultOversampling` value or introduces oversampling at query time, even if the index's compression configuration didn't specify oversampling or reranking options.
## See also
-+ [Get started with REST](search-get-started-rest.md)
-+ [Supported data types](/rest/api/searchservice/supported-data-types)
-+ [Search REST APIs](/rest/api/searchservice/)
+- [Get started with REST](search-get-started-rest.md)
+- [Supported data types](/rest/api/searchservice/supported-data-types)
+- [Search REST APIs](/rest/api/searchservice/)
search Vector Search How To Configure Vectorizer https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/vector-search-how-to-configure-vectorizer.md
- build-2024 Previously updated : 05/08/2024 Last updated : 08/05/2024 # Configure a vectorizer in a search index
-> [!IMPORTANT]
-> This feature is in public preview under [Supplemental Terms of Use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). The [2023-10-01-preview REST API](/rest/api/searchservice/skillsets/create-or-update?view=rest-searchservice-2023-10-01-preview&preserve-view=true) and [2024-03-01-preview REST API](/rest/api/searchservice/operation-groups?view=rest-searchservice-2024-03-01-preview&preserve-view=true) support the [AzureOpenAIEmbedding vectorizer](vector-search-vectorizer-azure-open-ai.md) and [custom vectorizer](vector-search-vectorizer-custom-web-api.md). [2024-05-01-preview REST API](/rest/api/searchservice/operation-groups?view=rest-searchservice-2024-05-01-preview&preserve-view=true) adds support for the [Azure AI Vision vectorizer](vector-search-vectorizer-ai-services-vision.md) and the [Azure AI Studio model catalog vectorizer](vector-search-vectorizer-azure-machine-learning-ai-studio-catalog.md).
- In Azure AI Search a *vectorizer* is software that performs vectorization, such as a deployed embedding model on Azure OpenAI, that converts text (or images) to vectors during query execution. It's defined in a [search index](search-what-is-an-index.md), it applies to searchable vector fields, and it's used at query time to generate an embedding for a text or image query input. If instead you need to vectorize content as part of the indexing process, refer to [Integrated Vectorization (Preview)](vector-search-integrated-vectorization.md). For built-in vectorization during indexing, you can configure an indexer and skillset that calls an embedding model for your raw text content.
-To add a vectorizer to search index, you can use the index designer in Azure portal, or call the [Create or Update Index 2024-05-01-preview](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) REST API, or use any Azure beta SDK package that's updated to provide this feature.
+To add a vectorizer to search index, you can use the index designer in Azure portal, or call the [Create or Update Index](/rest/api/searchservice/indexes/create-or-update) REST API, or use any Azure SDK package that's updated to provide this feature.
+
+Vectorizers are now generally available as long as you use a generally available skill-vectorizer pair. [AzureOpenAIEmbedding vectorizer](vector-search-vectorizer-azure-open-ai.md) and [AzureOpenAIEmbedding skill](cognitive-search-skill-azure-openai-embedding.md) are generally available. The custom [Web API vectorizer](/rest/api/searchservice/indexes/create-or-update#webapivectorizer) is also generally available.
+
+[Azure AI Vision vectorizer](vector-search-vectorizer-ai-services-vision.md), [Azure AI Studio model catalog vectorizer](vector-search-vectorizer-azure-machine-learning-ai-studio-catalog.md), and their equivalent skills are still in preview. Your skillset must specify [2024-05-01-preview REST API](/rest/api/searchservice/operation-groups?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to use preview skills and vectorizers.
## Prerequisites + [An index with searchable vector fields](vector-search-how-to-create-index.md) on Azure AI Search.
-+ A deployed embedding model, such as **text-embedding-ada-002** on Azure OpenAI. It's used to vectorize a query. It must be identical to the model used to generate the embeddings in your index. You can also use [models deployed from the Azure AI Studio model catalog](vector-search-integrated-vectorization-ai-studio.md) or an [Azure AI Vision model](/azure/ai-services/computer-vision/concept-image-retrieval).
++ A deployed embedding model, such as **text-embedding-ada-002**, **text-embedding-3-small**, or **text-embedding-3-large** on Azure OpenAI. It's used to vectorize a query. It must be [identical to the embedding model used for the vector field](vector-search-integrated-vectorization.md#using-integrated-vectorization-in-queries) in your index. You can also use [models deployed from the Azure AI Studio model catalog](vector-search-integrated-vectorization-ai-studio.md) or an [Azure AI Vision model](/azure/ai-services/computer-vision/concept-image-retrieval). + Permissions to use the embedding model. If you're using Azure OpenAI, the caller must have [Cognitive Services OpenAI User](/azure/ai-services/openai/how-to/role-based-access-control#azure-openai-roles) permissions. Or, you can provide an API key.
The [Import and vectorize data wizard](search-get-started-portal-import-vectors.
This section explains the modifications to an index schema for defining a vectorizer manually.
-1. Use [Create or Update Index (preview)](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2023-10-01-preview&preserve-view=true) to add `vectorizers` to a search index.
+1. Use [Create or Update Index](/rest/api/searchservice/indexes/create-or-update) to add `vectorizers` to a search index.
1. Add the following JSON to your index definition. The vectorizers section provides connection information to a deployed embedding model. This step shows two vectorizer examples so that you can compare an Azure OpenAI embedding model and a custom web API side by side.
Use a search client to send a query through a vectorizer. This example assumes V
@queryApiKey: 00000000000000000000000 ```
-1. Paste in a [vector query request](vector-search-how-to-query.md). Be sure to use a preview REST API version.
+1. Paste in a [vector query request](vector-search-how-to-query.md).
```http ### Run a query
- POST {{baseUrl}}/indexes/vector-nasa-ebook-txt/docs/search?api-version=2023-10-01-preview HTTP/1.1
+ POST {{baseUrl}}/indexes/vector-nasa-ebook-txt/docs/search?api-version=2024-07-01 HTTP/1.1
Content-Type: application/json api-key: {{queryApiKey}}
OperationEvent
## Best practices
-If you are setting up an Azure OpenAI vectorizer, consider the same [best practices](cognitive-search-skill-azure-openai-embedding.md#best-practices) that we recommend for the Azure OpenAI embedding skill.
+If you're setting up an Azure OpenAI vectorizer, consider the same [best practices](cognitive-search-skill-azure-openai-embedding.md#best-practices) that we recommend for the Azure OpenAI embedding skill.
## See also
search Vector Search How To Create Index https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/vector-search-how-to-create-index.md
Previously updated : 05/21/2024 Last updated : 08/05/2024 # Create a vector index
-In Azure AI Search, a *vector store* has an index schema that defines vector and nonvector fields, a vector configuration for algorithms that create the embedding space, and settings on vector field definitions that are used in query requests. The [Create or Update Index](/rest/api/searchservice/indexes/create-or-update) API creates the vector store.
+In Azure AI Search, a *vector store* has an index schema that defines vector and nonvector fields, a vector configuration for algorithms that create and compress the embedding space, and settings on vector field definitions that are used in query requests. The [Create or Update Index](/rest/api/searchservice/indexes/create-or-update) API creates the vector store.
Follow these steps to index vector data: > [!div class="checklist"]
-> + Define a schema with vector algorithms for indexing and search
-> + Add vector fields
-> + Load prevectorized data [as a separate step](#load-vector-data-for-indexing), or use [integrated vectorization (preview)](vector-search-integrated-vectorization.md) for data chunking and encoding during indexing
+> + Define a schema with vector algorithms and optional compression
+> + Add vector field definitions
+> + Load prevectorized data [as a separate step](#load-vector-data-for-indexing), or use [integrated vectorization](vector-search-integrated-vectorization.md) for data chunking and encoding during indexing
-This article explains the workflow and uses REST to illustrate each step. Each recent version of the REST API adds new functionality. Once you understand the basic workflow and what each API version provides, continue with the Azure SDK code samples in the [azure-search-vector-samples](https://github.com/Azure/azure-search-vector-samples) repository for guidance on using these features in test and production code.
+This article explains the workflow and uses REST for illustration. Once you understand the basic workflow, continue with the Azure SDK code samples in the [azure-search-vector-samples](https://github.com/Azure/azure-search-vector-samples) repository for guidance on using these features in test and production code.
> [!TIP] > Use the Azure portal to [create a vector index](search-get-started-portal-import-vectors.md) and try out integrated vectorization. ## Prerequisites
-+ Azure AI Search, in any region and on any tier. Most existing services support vector search. For services created before January 2019, there's a small subset that can't create a vector index. In this situation, a new service must be created.
++ Azure AI Search, in any region and on any tier. Most existing services support vector search. For services created before January 2019, there's a small subset that can't create a vector index. In this situation, a new service must be created. If you're using integrated vectorization (skillsets that call Azure AI), Azure AI Search must be in the same region as Azure OpenAI or Azure AI services.
-+ Pre-existing vector embeddings in your source documents if you're using the generally available version of the Azure SDKs and REST APIs. For more information, see [Generate embeddings](vector-search-how-to-generate-embeddings.md). An alternative is [integrated vectorization (preview)](vector-search-integrated-vectorization.md).
++ [Pre-existing vector embeddings](vector-search-how-to-generate-embeddings.md) or use [integrated vectorization](vector-search-integrated-vectorization.md), where embedding models are called from the indexing pipeline.
-+ You should know the dimensions limit of the model used to create the embeddings and how similarity is computed. In Azure OpenAI, for **text-embedding-ada-002**, the length of the numerical vector is 1536. Similarity is computed using `cosine`. Valid values are 2 through 3072 dimensions.
++ You should know the dimensions limit of the model used to create the embeddings. Valid values are 2 through 3072 dimensions. In Azure OpenAI, for **text-embedding-ada-002**, the length of the numerical vector is 1536. For **text-embedding-3-small** or **text-embedding-3-large**, the vector length is 3072. +++ You should also know what the supported similarity metrics are. For Azure OpenAI, similarity is [computed using `cosine`](/azure/ai-services/openai/concepts/understand-embeddings#cosine-similarity). + You should be familiar with [creating an index](search-how-to-create-search-index.md). The schema must include a field for the document key, other fields you want to search or filter, and other configurations for behaviors needed during indexing and queries.
Make sure your documents:
1. Provide vector data (an array of single-precision floating point numbers) in source fields.
- Vector fields contain numeric data generated by embedding models, one embedding per field. We recommend the embedding models in [Azure OpenAI](https://aka.ms/oai/access), such as **text-embedding-ada-002** for text documents or the [Image Retrieval REST API](/rest/api/computervision/2023-02-01-preview/image-retrieval/vectorize-image) for images. Only index top-level vector fields are supported: Vector subfields aren't currently supported.
+ Vector fields contain an array generated by embedding models, one embedding per field, where the field is a top-level field (not part of a nested or complex type). For the simplest integration, we recommend the embedding models in [Azure OpenAI](https://aka.ms/oai/access), such as **text-embedding-ada-002** for text documents or the [Image Retrieval REST API](/rest/api/computervision/2023-02-01-preview/image-retrieval/vectorize-image) for images.
+
+ If you can take a dependency on indexers and skillsets, consider using [integrated vectorization](vector-search-integrated-vectorization.md) that encodes images and alphanumeric content during indexing. Your field definitions are for vector fields, but source data can be text or images, with vector arrays created during indexing.
1. Provide other fields with human-readable alphanumeric content for the query response, and for hybrid query scenarios that include full text search or semantic ranking in the same request.
A short example of a documents payload that includes vector and nonvector fields
## Add a vector search configuration
-A vector configuration specifies the [vector search algorithm](vector-search-ranking.md) and parameters used during indexing to create "nearest neighbor" information among the vector nodes:
+A vector configuration specifies the parameters used during indexing to create "nearest neighbor" information among the vector nodes:
+ Hierarchical Navigable Small World (HNSW) + Exhaustive KNN If you choose HNSW on a field, you can opt in for exhaustive KNN at query time. But the other direction doesnΓÇÖt work: if you choose exhaustive, you canΓÇÖt later request HNSW search because the extra data structures that enable approximate search donΓÇÖt exist.
-Looking for preview-to-stable version migration guidance? See [Upgrade REST APIs](search-api-migration.md) for steps.
+A vector configuration also specifies quantization methods for reducing vector size:
+++ Scalar++ Binary (available in 2024-07-01 only and in newer Azure SDK packages)
-### [**2023-11-01**](#tab/config-2023-11-01)
+For instructions on how to migrate to the latest version, see [Upgrade REST API](search-api-migration.md).
-[**2023-11-01**](/rest/api/searchservice/search-service-api-versions#2023-11-01) is generally available. It supports a vector configuration having:
+### [**2024-07-01**](#tab/config-2024-07-01)
-+ `vectorSearch.algorithms` with parameters for indexing and scoring.
-+ `vectorSearch.profiles` for multiple combinations of algorithm configurations.
+[**2024-07-01**](/rest/api/searchservice/search-service-api-versions#2024-07-01) is generally available. It supports a vector configuration having:
-Be sure to have a strategy for [vectorizing your content](vector-search-how-to-generate-embeddings.md). The stable version doesn't provide [skills](cognitive-search-predefined-skills.md) or [vectorizers](vector-search-how-to-configure-vectorizer.md) for built-in encoding.
++ `vectorSearch.algorithms` support HNSW and exhaustive KNN.++ `vectorSearch.compressions` support scalar and binary quantization, oversampling, and reranking with original vectors.++ `vectorSearch.profiles` provide for multiple combinations of algorithm and compression configurations.+
+Be sure to have a strategy for [vectorizing your content](vector-search-how-to-generate-embeddings.md). We recommend [integrated vectorization](vector-search-integrated-vectorization.md) and [query-time vectorizers](vector-search-how-to-configure-vectorizer.md) for built-in encoding.
1. Use the [Create or Update Index](/rest/api/searchservice/indexes/create-or-update) API to create the index.
Be sure to have a strategy for [vectorizing your content](vector-search-how-to-g
```json "vectorSearch": {
+ "compressions": [
+ {
+ "name": "scalar-quantization",
+ "kind": "scalarQuantization",
+ "rerankWithOriginalVectors": true,
+ "defaultOversampling": 10.0,
+ "scalarQuantizationParameters": {
+ "quantizedDataType": "int8"
+ }
+ },
+ {
+ "name": "binary-quantization",
+ "kind": "binaryQuantization",
+ "rerankWithOriginalVectors": true,
+ "defaultOversampling": 10.0,
+ }
+ ],
"algorithms": [ {
- "name": "my-hnsw-config-1",
+ "name": "hnsw-1",
"kind": "hnsw", "hnswParameters": { "m": 4,
Be sure to have a strategy for [vectorizing your content](vector-search-how-to-g
} }, {
- "name": "my-hnsw-config-2",
+ "name": "hnsw-2",
"kind": "hnsw", "hnswParameters": { "m": 8, "efConstruction": 800, "efSearch": 800,
- "metric": "cosine"
+ "metric": "hamming"
} }, {
- "name": "my-eknn-config",
+ "name": "eknn",
"kind": "exhaustiveKnn", "exhaustiveKnnParameters": {
- "metric": "cosine"
+ "metric": "euclidean"
} } ], "profiles": [ {
- "name": "my-default-vector-profile",
- "algorithm": "my-hnsw-config-2"
+ "name": "vector-profile-hnsw-scalar",
+ "compression": "scalar-quantization",
+ "algorithm": "hnsw-1"
} ] }
Be sure to have a strategy for [vectorizing your content](vector-search-how-to-g
**Key points**:
- + Name of the configuration. The name must be unique within the index.
- + `profiles` add a layer of abstraction for accommodating richer definitions. A profile is defined in `vectorSearch`, and then referenced by name on each vector field.
- + `"hnsw"` and `"exhaustiveKnn"` are the Approximate Nearest Neighbors (ANN) algorithms used to organize vector content during indexing.
- + `"m"` (bi-directional link count) default is 4. The range is 4 to 10. Lower values should return less noise in the results.
- + `"efConstruction"` default is 400. The range is 100 to 1,000. It's the number of nearest neighbors used during indexing.
- + `"efSearch"` default is 500. The range is 100 to 1,000. It's the number of nearest neighbors used during search.
- + `"metric"` should be "cosine" if you're using Azure OpenAI, otherwise use the similarity metric associated with the embedding model you're using. Supported values are `cosine`, `dotProduct`, `euclidean`.
+ + Names for each configuration of compression, algorithm, and profile must be unique for its type within the index.
-### [**2024-05-01-Preview**](#tab/config-2024-05-01-Preview)
+ + `vectorSearch.compressions.kind` can be `scalarQuantization` or `binaryQuantization`.
-[**2024-05-01-Preview**](/rest/api/searchservice/search-service-api-versions#2024-05-01-preview) is the newest version. It adds more encoding options, but the vector search configuration (`vectorSearch` structure) is mostly identical to 2024-03-01-preview.
+ + `vectorSearch.compressions.rerankWithOriginalVectors` uses the original, uncompressed vectors to recalculate similarity and rerank the top results returned by the initial search query. The uncompressed vectors exist in the search index even if `stored` is false. This property is optional. Default is true.
-+ Adds `hamming` distance as a metric for nearest neighbor search over binary data. For more information, see [Index binary data for vector search](vector-search-how-to-index-binary-data.md).
+ + `vectorSearch.compressions.defaultOversampling` considers a broader set of potential results to offset the reduction in information from quantization. The formula for potential results consists of the `k` in the query, with an oversampling multiplier. For example, if the query specifies a `k` of 5, and oversampling is 20, then the query effectively requests 100 documents for use in reranking, using the original uncompressed vector for that purpose. Only the top `k` reranked results are returned. This property is optional. Default is 4.
-+ Expands integrated vectorization with more embedding model choices. To benefit from this capability, you must take a dependency on an indexer and skillset. See [Load vector data](#load-vector-data-for-indexing) and the **Pull APIs** section for a list of the new embedding skills.
+ + `vectorSearch.compressions.scalarQuantizationParameters.quantizedDataType` must be set to `int8`. This is the only primitive data type supported at this time. This property is optional. Default is `int8`.
-+ Use the [Create or Update Index Preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to create the index.
+ + `vectorSearch.algorithms.kind` are either `"hnsw"` or `"exhaustiveKnn"`. These are the Approximate Nearest Neighbors (ANN) algorithms used to organize vector content during indexing.
-For more information about new preview features, see [What's new in Azure AI Search](whats-new.md).
+ + `vectorSearch.algorithms.m` is the bi-directional link count. Default is 4. The range is 4 to 10. Lower values should return less noise in the results.
+
+ + `vectorSearch.algorithms.efConstruction` is the number of nearest neighbors used during indexing. Default is 400. The range is 100 to 1,000.
-### [**2024-03-01-Preview**](#tab/config-2024-03-01-Preview)
+ + `"vectorSearch.algorithms.fSearch` is the number of nearest neighbors used during search. Default is 500. The range is 100 to 1,000.
-[**2024-03-01-Preview**](/rest/api/searchservice/search-service-api-versions#2024-03-01-preview) adds [scalar quantization](vector-search-how-to-configure-vectorizer.md) and storage-saving options.
+ + `vectorSearch.algorithms.metric` should be "cosine" if you're using Azure OpenAI, otherwise use the similarity metric associated with the embedding model you're using. Supported values are `cosine`, `dotProduct`, `euclidean`, `hamming` (used for [indexing binary data](vector-search-how-to-index-binary-data.md)).
-+ Adds `vectorSearch.compressions` with properties for scalar quantization and oversampling.
-+ Adds narrow data types: `Float16`, `Int16`, and `Int8` for more efficient vector storage.
-+ Inclusive of 2023-10-01-preview [integrated vectorization](vector-search-integrated-vectorization.md).
+ + `vectorSearch.profiles` add a layer of abstraction for accommodating richer definitions. A profile is defined in `vectorSearch`, and then referenced by name on each vector field. It's a combination of compression and algorithm configurations. This is the property that you assign to a vector field, and it determines the fields' algorithm and compression.
+
+### [**2024-05-01-preview**](#tab/config-2024-05-01-Preview)
+
+[**2024-05-01-preview**](/rest/api/searchservice/search-service-api-versions#2024-05-01-preview) is the most recent preview version.
+++ `vectorSearch.algorithms` with support for HNSW and exhaustive KNN.++ `vectorSearch.compressions` with properties for scalar (but not binary) quantization, oversampling, and reranking with original vectors.++ `vectorSearch.profiles` for multiple combinations of algorithm and compression configurations.++ Inclusive of 2024-03-01-preview.++ Inclusive of 2023-10-01-preview. + Inclusive of 2023-11-01 `vectorSearch.algorithms` and `vectorSearch.profiles`.
-1. Use the [Create or Update Index Preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-03-01-preview&preserve-view=true) to create the index.
+1. Use the [Create or Update Index Preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to create the index.
1. Add a `vectorSearch` section in the index that specifies compression settings and the search algorithms used to create the embedding space. For more information, see [Configure vector quantization and reduced storage](vector-search-how-to-configure-compression-storage.md).
For more information about new preview features, see [What's new in Azure AI Sea
], "algorithms": [ {
- "name": "my-hnsw-config-1",
+ "name": "hnsw-1",
"kind": "hnsw", "hnswParameters": { "m": 4,
For more information about new preview features, see [What's new in Azure AI Sea
} }, {
- "name": "my-hnsw-config-2",
+ "name": "hnsw-2",
"kind": "hnsw", "hnswParameters": { "m": 8, "efConstruction": 800, "efSearch": 800,
- "metric": "cosine"
+ "metric": "hamming"
} }, {
- "name": "my-eknn-config",
+ "name": "eknn",
"kind": "exhaustiveKnn", "exhaustiveKnnParameters": {
- "metric": "cosine"
+ "metric": "euclidean"
} } ], "profiles": [ {
- "name": "my-default-vector-profile",
- "algorithm": "my-hnsw-config-2"
+ "name": "vector-profile-hnsw-1",
+ "algorithm": "hnsw-1"
} ] }
For more information about new preview features, see [What's new in Azure AI Sea
+ `vectorSearch.compressions.kind` must be `scalarQuantization`.
- + `rerankWithOriginalVectors` uses the original, uncompressed vectors to recalculate similarity and rerank the top results returned by the initial search query. The uncompressed vectors exist in the search index even if `stored` is false. This property is optional. Default is true.
-
- + `defaultOversampling` considers a broader set of potential results to offset the reduction in information from quantization. The formula for potential results consists of the `k` in the query, with an oversampling multiplier. For example, if the query specifies a `k` of 5, and oversampling is 20, then the query effectively requests 100 documents for use in reranking, using the original uncompressed vector for that purpose. Only the top `k` reranked results are returned. This property is optional. Default is 4.
-
- + `quantizedDataType` must be set to `int8`. This is the only primitive data type supported at this time. This property is optional. Default is `int8`.
-
-### [**2023-10-01-Preview**](#tab/config-2023-10-01-Preview)
-
-[**2023-10-01-Preview**](/rest/api/searchservice/search-service-api-versions#2023-10-01-Preview) adds [internal vectorization](vector-search-how-to-configure-vectorizer.md), but the vector search configuration (`vectorSearch` structure) is mostly identical to 2023-11-01 version.
-
-1. Use the [Create or Update Index Preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2023-10-01-preview&preserve-view=true) to create the index.
-
-1. Add a `vectorSearch` section in the index that specifies the search algorithms used to create the embedding space.
-
- ```json
- "vectorSearch": {
- "algorithms": [
- {
- "name": "my-hnsw-config-1",
- "kind": "hnsw",
- "hnswParameters": {
- "m": 4,
- "efConstruction": 400,
- "efSearch": 500,
- "metric": "cosine"
- }
- },
- {
- "name": "my-hnsw-config-2",
- "kind": "hnsw",
- "hnswParameters": {
- "m": 8,
- "efConstruction": 800,
- "efSearch": 800,
- "metric": "cosine"
- }
- },
- {
- "name": "my-eknn-config",
- "kind": "exhaustiveKnn",
- "exhaustiveKnnParameters": {
- "metric": "cosine"
- }
- }
-
- ],
- "profiles": [
- {
- "name": "my-default-vector-profile",
- "algorithm": "my-hnsw-config-2"
- }
- ]
- }
- ```
-
- **Key points**:
+ + `vectorSearch.compressions.rerankWithOriginalVectors` uses the original, uncompressed vectors to recalculate similarity and rerank the top results returned by the initial search query. The uncompressed vectors exist in the search index even if `stored` is false. This property is optional. Default is true.
- + Name of the configuration. The name must be unique within the index.
- + `profiles` are new in this preview. They add a layer of abstraction for accommodating richer definitions. A profile is defined in `vectorSearch`, and then as a property on each vector field.
- + `hnsw` and `"exhaustiveKnn"` are the Approximate Nearest Neighbors (ANN) algorithms used to organize vector content during indexing.
- + `m` (bi-directional link count) default is 4. The range is 4 to 10. Lower values should return less noise in the results.
- + `efConstruction` default is 400. The range is 100 to 1,000. It's the number of nearest neighbors used during indexing.
- + `efSearch` default is 500. The range is 100 to 1,000. It's the number of nearest neighbors used during search.
- + `metric` should be "cosine" if you're using Azure OpenAI, otherwise use the similarity metric associated with the embedding model you're using. Supported values are `cosine`, `dotProduct`, `euclidean`.
+ + `vectorSearch.compressions.defaultOversampling` considers a broader set of potential results to offset the reduction in information from quantization. The formula for potential results consists of the `k` in the query, with an oversampling multiplier. For example, if the query specifies a `k` of 5, and oversampling is 20, then the query effectively requests 100 documents for use in reranking, using the original uncompressed vector for that purpose. Only the top `k` reranked results are returned. This property is optional. Default is 4.
-### [**2023-07-01-Preview**](#tab/rest-add-config)
+ + `vectorSearch.compressions.scalarQuantizationParameters.quantizedDataType` must be set to `int8`. This is the only primitive data type supported at this time. This property is optional. Default is `int8`.
-> [!IMPORTANT]
-> 2023-07-01-Preview was the first REST API version to support vectors. It uses outmoded structures that have been replaced in newer previews. We recommend [migrating to a newer REST API](search-api-migration.md).
+ + `vectorSearch.algorithms.kind` are either `"hnsw"` or `"exhaustiveKnn"`. These are the Approximate Nearest Neighbors (ANN) algorithms used to organize vector content during indexing.
-This preview added:
+ + `vectorSearch.algorithms.m` is the bi-directional link count. Default is 4. The range is 4 to 10. Lower values should return less noise in the results.
+
+ + `vectorSearch.algorithms.efConstruction` is the number of nearest neighbors used during indexing. Default is 400. The range is 100 to 1,000.
-+ `vectorSearch.algorithmConfigurations` for specifying the HNSW algorithm.
-+ `hnsw` nearest neighbor algorithm for indexing vector content.
+ + `"vectorSearch.algorithms.fSearch` is the number of nearest neighbors used during search. Default is 500. The range is 100 to 1,000.
-1. Use the [Create or Update Index REST API](/rest/api/searchservice/preview-api/create-or-update-index) to create the index.
+ + `vectorSearch.algorithms.metric` should be "cosine" if you're using Azure OpenAI, otherwise use the similarity metric associated with the embedding model you're using. Supported values are `cosine`, `dotProduct`, `euclidean`, `hamming` (used for [indexing binary data](vector-search-how-to-index-binary-data.md)).
-1. Add a `vectorSearch` section in the index that specifies the search algorithm used to create the embedding space.
+ + `vectorSearch.profiles` add a layer of abstraction for accommodating richer definitions. A profile is defined in `vectorSearch`, and then referenced by name on each vector field. It's a combination of compression and algorithm configurations. This is the property that you assign to a vector field, and it determines the fields' algorithm and compression.
- ```json
- "vectorSearch": {
- "algorithmConfigurations": [
- {
- "name": "vectorConfig",
- "kind": "hnsw",
- "hnswParameters": {
- "m": 4,
- "efConstruction": 400,
- "efSearch": 500,
- "metric": "cosine"
- }
- }
- ]
- }
- ```
-
- **Key points**:
-
- + Name of the configuration. The name must be unique within the index.
- + `hnsw` is the Approximate Nearest Neighbors (ANN) algorithm used to create the proximity graph during indexing. Only Hierarchical Navigable Small World (HNSW) is supported in this API version.
- + `m` (bi-directional link count) default is 4. The range is 4 to 10. Lower values should return less noise in the results.
- + `efConstruction` default is 400. The range is 100 to 1,000. It's the number of nearest neighbors used during indexing.
- + `efSearch` default is 500. The range is 100 to 1,000. It's the number of nearest neighbors used during search.
- + `metric` should be "cosine" if you're using Azure OpenAI, otherwise use the similarity metric associated with the embedding model you're using. Supported values are `cosine`, `dotProduct`, `euclidean`.
+For more information about new preview features, see [What's new in Azure AI Search](whats-new.md).
The fields collection must include a field for the document key, vector fields,
Vector fields are characterized by [their data type](/rest/api/searchservice/supported-data-types#edm-data-types-for-vector-fields), a `dimensions` property based on the embedding model used to output the vectors, and a vector profile.
-### [**2023-11-01**](#tab/rest-2023-11-01)
+### [**2024-07-01**](#tab/rest-2024-07-01)
-Use this version if you want generally available features only.
+[**2024-07-01**](/rest/api/searchservice/search-service-api-versions#2024-07-01) is generally available.
1. Use the [Create or Update Index](/rest/api/searchservice/indexes/create-or-update) to create the index. 1. Define a vector field with the following attributes. You can store one generated embedding per field. For each vector field:
- + `type` must be `Collection(Edm.Single)` in this API version.
+ + `type` must be a [vector data types](/rest/api/searchservice/supported-data-types#edm-data-types-for-vector-fields). `Collection(Edm.Single)` is the most common for embedding models.
+ `dimensions` is the number of dimensions generated by the embedding model. For text-embedding-ada-002, it's 1536. + `vectorSearchProfile` is the name of a profile defined elsewhere in the index. + `searchable` must be true. + `retrievable` can be true or false. True returns the raw vectors (1536 of them) as plain text and consumes storage space. Set to true if you're passing a vector result to a downstream app.
+ + `stored` can be true or false. It determines whether an extra copy of vectors is stored for retrieval. For more information, see [Reduce vector size](vector-search-how-to-configure-compression-storage.md).
+ `filterable`, `facetable`, `sortable` must be false. 1. Add filterable nonvector fields to the collection, such as "title" with `filterable` set to true, if you want to invoke [prefiltering or postfiltering](vector-search-filters.md) on the [vector query](vector-search-how-to-query.md).
Use this version if you want generally available features only.
The following example shows the fields collection: ```http
- PUT https://my-search-service.search.windows.net/indexes/my-index?api-version=2023-11-01&allowIndexDowntime=true
+ PUT https://my-search-service.search.windows.net/indexes/my-index?api-version=2024-07-01&allowIndexDowntime=true
Content-Type: application/json api-key: {{admin-api-key}} {
Use this version if you want generally available features only.
"type": "Collection(Edm.Single)", "searchable": true, "retrievable": true,
+ "stored": true,
"dimensions": 1536,
- "vectorSearchProfile": "my-default-vector-profile"
+ "vectorSearchProfile": "vector-profile-1"
}, { "name": "content",
Use this version if you want generally available features only.
"name": "contentVector", "type": "Collection(Edm.Single)", "searchable": true,
- "retrievable": true,
+ "retrievable": false,
+ "stored": false,
"dimensions": 1536,
- "vectorSearchProfile": "my-default-vector-profile"
+ "vectorSearchProfile": "-vector-profile-1"
} ], "vectorSearch": { "algorithms": [ {
- "name": "my-hnsw-config-1",
+ "name": "hsnw-1",
"kind": "hnsw", "hnswParameters": { "m": 4,
Use this version if you want generally available features only.
], "profiles": [ {
- "name": "my-default-vector-profile",
- "algorithm": "my-hnsw-config-1"
+ "name": "vector-profile-1",
+ "algorithm": "hnsw-1"
} ] } } ```
-### [**2024-05-01-Preview**](#tab/rest-2024-05-01-Preview)
-
-Vector field definitions are the same as 2024-03-01-preview, with the exception of a new binary data type. For more information, see [Index binary data for vector search](vector-search-how-to-index-binary-data.md).
-
-Use the [Create or Update Index Preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to define the fields collection of an index.
-
-### [**2024-03-01-Preview**](#tab/rest-2024-03-01-Preview)
+### [**2024-05-01-preview**](#tab/rest-2024-05-01-Preview)
-This API version builds on 2023-10-01-preview by adding support for [narrow data types](/rest/api/searchservice/supported-data-types#edm-data-types-for-vector-fields) and [scalar quantization](vector-search-how-to-configure-compression-storage.md).
++ Supports all [vector data types](/rest/api/searchservice/supported-data-types#edm-data-types-for-vector-fields).++ Inclusive of `2024-03-01-preview`, with new support [indexing binary data for vector search](vector-search-how-to-index-binary-data.md).
-1. Use the [Create or Update Index Preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-03-01-preview&preserve-view=true) to define the fields collection of an index.
+1. Use the [Create or Update Index Preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) to define the fields collection of an index.
1. Add vector fields to the fields collection. You can store one generated embedding per document field. For each vector field:
This API version builds on 2023-10-01-preview by adding support for [narrow data
+ `stored` is a new boolean property that applies to vector fields only. True stores a copy of vectors returned in search results. False discards that copy during indexing. You can search on vectors, but can't return vectors in results. + `filterable`, `facetable`, `sortable` must be false.
+1. Add filterable nonvector fields to the collection, such as "title" with `filterable` set to true, if you want to invoke [prefiltering or postfiltering](vector-search-filters.md) on the [vector query](vector-search-how-to-query.md).
+
+1. Add other fields that define the substance and structure of the textual content you're indexing. At a minimum, you need a document key.
+
+ You should also add fields that are useful in the query or in its response. The following example shows vector fields for title and content ("titleVector", "contentVector") that are equivalent to vectors. It also provides fields for equivalent textual content ("title", "content") useful for sorting, filtering, and reading in a search result.
+ 1. The following example shows the fields collection: ```http
- PUT https://my-search-service.search.windows.net/indexes/my-index?api-version=2024-03-01-Preview&allowIndexDowntime=true
+ PUT https://my-search-service.search.windows.net/indexes/my-index?api-version=2024-05-01-preview&allowIndexDowntime=true
Content-Type: application/json api-key: {{admin-api-key}} {
This API version builds on 2023-10-01-preview by adding support for [narrow data
"retrievable": false, "stored": false, "dimensions": 1536,
- "vectorSearchProfile": "my-default-vector-profile"
+ "vectorSearchProfile": "vector-profile-1"
}, { "name": "secondVectorfield-float16-embeddings",
This API version builds on 2023-10-01-preview by adding support for [narrow data
"searchable": true, "retrievable": false, "stored": false,
- "vectorSearchProfile": "my-default-vector-profile"
+ "dimensions": 1536,
+ "vectorSearchProfile": "vector-profile-1"
}, { "name": "thirdVectorfield-int8-embeddings-for-my-custom-quantization-output",
This API version builds on 2023-10-01-preview by adding support for [narrow data
"searchable": true, "retrievable": false, "stored": false,
- "vectorSearchProfile": "my-default-vector-profile"
- },
- ],
- "vectorSearch": {
- "algorithms": [
- {
- "name": "my-hnsw-config-1",
- "kind": "hnsw",
- "hnswParameters": {
- "m": 4,
- "efConstruction": 400,
- "efSearch": 500,
- "metric": "cosine"
- }
- }
- ],
- "profiles": [
- {
- "name": "my-default-vector-profile",
- "algorithm": "my-hnsw-config-1"
- }
- ]
- }
- }
- ```
-
-### [**2023-10-01-Preview**](#tab/rest-2023-10-01-Preview)
-
-In the following REST API example, "title" and "content" contain textual content used in full text search and semantic ranking, while "titleVector" and "contentVector" contain vector data. In this API version, you can use indexers and a skillset to populate vector field using [integrated vectorization](vector-search-integrated-vectorization.md). The index definition doesn't change, but you can add indexers and skills to your solution to populate the fields.
-
-1. Use the [Create or Update Index Preview REST API](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2023-10-01-preview&preserve-view=true) to define the fields collection of an index.
-
-1. Add vector fields to the fields collection. You can store one generated embedding per document field. For each vector field:
-
- + `type` must be `Collection(Edm.Single)`.
- + `dimensions` is the number of dimensions generated by the embedding model. For text-embedding-ada-002, it's 1536.
- + `vectorSearchProfile` is the name of a profile defined elsewhere in the index.
- + `searchable` must be true.
- + `retrievable` can be true or false. True returns the raw vectors (1536 of them) as plain text and consumes storage space. Set to true if you're passing a vector result to a downstream app.
- + `filterable`, `facetable`, `sortable` must be false.
-
-1. Add filterable nonvector fields to the collection, such as "title" with `filterable` set to true, if you want to invoke [prefiltering or postfiltering](vector-search-filters.md) on the [vector query](vector-search-how-to-query.md
-
-1. Add other fields that define the substance and structure of the textual content you're indexing. At a minimum, you need a document key.
-
- You should also add fields that are useful in the query or in its response. The following example shows vector fields for title and content ("titleVector", "contentVector") that are equivalent to vectors. It also provides fields for equivalent textual content ("title", "content") useful for sorting, filtering, and reading in a search result.
-
- The following example shows the fields collection:
-
- ```http
- PUT https://my-search-service.search.windows.net/indexes/my-index?api-version=2023-10-01-Preview&allowIndexDowntime=true
- Content-Type: application/json
- api-key: {{admin-api-key}}
- {
- "name": "{{index-name}}",
- "fields": [
- {
- "name": "id",
- "type": "Edm.String",
- "key": true,
- "filterable": true
- },
- {
- "name": "title",
- "type": "Edm.String",
- "searchable": true,
- "filterable": true,
- "sortable": true,
- "retrievable": true
- },
- {
- "name": "titleVector",
- "type": "Collection(Edm.Single)",
- "searchable": true,
- "retrievable": true,
"dimensions": 1536,
- "vectorSearchProfile": "my-default-vector-profile"
+ "vectorSearchProfile": "vector-profile-1"
}, {
- "name": "content",
- "type": "Edm.String",
+ "name": "fourthVectorfield-for-binary-data",
+ "type": "Collection(Edm.Byte)",
"searchable": true,
- "retrievable": true
- },
- {
- "name": "contentVector",
- "type": "Collection(Edm.Single)",
- "searchable": true,
- "retrievable": true,
+ "retrievable": false,
+ "stored": false,
"dimensions": 1536,
- "vectorSearchProfile": "my-default-vector-profile"
+ "vectorSearchProfile": "vector-profile-1"
} ], "vectorSearch": { "algorithms": [ {
- "name": "my-hnsw-config-1",
+ "name": "hnsw-1",
"kind": "hnsw", "hnswParameters": { "m": 4,
In the following REST API example, "title" and "content" contain textual content
], "profiles": [ {
- "name": "my-default-vector-profile",
- "algorithm": "my-hnsw-config-1"
+ "name": "vector-profile-1",
+ "algorithm": "hnsw-1"
} ] } }
- ```
-
-### [**2023-07-01-Preview**](#tab/rest-add-field)
-
-> [!IMPORTANT]
-> The vector field definitions for this version are obsolete in later versions. We recommend [migrating to a newer REST API](search-api-migration.md).
-
-[**2023-07-01-Preview**](/rest/api/searchservice/index-preview) was the first REST API version to support vector scenarios.
-
-In the following REST API example, "title" and "content" contain textual content used in full text search and semantic ranking, while "titleVector" and "contentVector" contain vector data that was generated externally.
-
-1. Use the [Create or Update Index Preview REST API](/rest/api/searchservice/preview-api/create-or-update-index) to define the fields collection of an index.
-
-1. Add vector fields to the fields collection. You can store one generated embedding per document field. For each vector field:
-
- + Assign the `Collection(Edm.Single)` data type.
- + Provide the name of the vector search algorithm configuration.
- + Provide the number of dimensions generated by the embedding model.
- + Set attributes:
- + "searchable" must be "true".
- + "retrievable" set to "true" allows you to display the raw vectors (for example, as a verification step), but doing so increases storage. Set to "false" if you don't need to return raw vectors. You don't need to return vectors for a query, but if you're passing a vector result to a downstream app then set "retrievable" to "true".
- + "filterable", "facetable", "sortable" attributes must be "false". Don't set them to "true" because those behaviors don't apply within the context of vector fields and the request will fail.
-
-1. Add other fields that define the substance and structure of the textual content you're indexing. At a minimum, you need a document key.
-
- You should also add fields that are useful in the query or in its response. The following example shows vector fields for title and content ("titleVector", "contentVector") that are equivalent to vectors. It also provides fields for equivalent textual content ("title", "content") useful for sorting, filtering, and reading in a search result.
-
- An index definition with the described elements looks like this:
-
- ```http
- PUT https://my-search-service.search.windows.net/indexes/my-index?api-version=2023-07-01-Preview&allowIndexDowntime=true
- Content-Type: application/json
- api-key: {{admin-api-key}}
- {
- "name": "{{index-name}}",
- "fields": [
- {
- "name": "id",
- "type": "Edm.String",
- "key": true,
- "filterable": true
- },
- {
- "name": "title",
- "type": "Edm.String",
- "searchable": true,
- "filterable": true,
- "sortable": true,
- "retrievable": true
- },
- {
- "name": "titleVector",
- "type": "Collection(Edm.Single)",
- "searchable": true,
- "retrievable": true,
- "dimensions": 1536,
- "vectorSearchConfiguration": "vectorConfig"
- },
- {
- "name": "content",
- "type": "Edm.String",
- "searchable": true,
- "retrievable": true
- },
- {
- "name": "contentVector",
- "type": "Collection(Edm.Single)",
- "searchable": true,
- "retrievable": true,
- "dimensions": 1536,
- "vectorSearchConfiguration": "vectorConfig"
- }
- ],
- "vectorSearch": {
- "algorithmConfigurations": [
- {
- "name": "vectorConfig",
- "kind": "hnsw",
- "hnswParameters": {
- "m": 4,
- "efConstruction": 400,
- "efSearch": 500,
- "metric": "cosine"
- }
- }
- ]
- }
- }
- ```
+ ```
You can use either [push or pull methodologies](search-what-is-data-import.md) f
Use **Documents - Index** to load vector and nonvector data into an index. The push APIs for indexing are identical across all stable and preview versions. Use any of the following APIs to load documents:
-+ [2023-11-01](/rest/api/searchservice/documents/?view=rest-searchservice-2023-11-01&preserve-view=true)
++ [2024-07-01](/rest/api/searchservice/documents) + [2024-05-01-preview](/rest/api/searchservice/documents/?view=rest-searchservice-2024-05-01-preview&preserve-view=true)
-+ [2024-03-01-preview](/rest/api/searchservice/documents/?view=rest-searchservice-2024-03-01-preview&preserve-view=true)
-+ [2023-10-01-preview](/rest/api/searchservice/documents/?view=rest-searchservice-2023-10-01-preview&preserve-view=true)
-+ [2023-07-01-Preview](/rest/api/searchservice/preview-api/add-update-delete-documents)
```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/index?api-version=2023-11-01
-Content-Type: application/json
-api-key: {{admin-api-key}}
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/index?api-version=2024-07-01
+ { "value": [ {
api-key: {{admin-api-key}}
### [**Pull APIs (indexers)**](#tab/pull)
-All of the newer preview releases use pull APIs (indexers and skillsets) for integrated vectorization during indexing and query time.
+Pull APIs refer to indexers, which automate multiple indexing steps, from data retrieval and refresh, to [integrated vectorization](vector-search-integrated-vectorization.md) that encodes content for vector search.
-Indexers can retrieve and index vector fields in source documents, assuming an index schema that meets vector field requirements and the preview REST API. Data sources provide the vectors in whatever format the data source supports (such as strings in JSON). The indexer assumes that fields typed as `Collection(Edm.Single)` contain vectors and will index that content as vector indexes.
++ Data sources must be a [supported type](search-indexer-overview.md#supported-data-sources).
-+ No changes to field mapping behavior or change detection for vectors. The behaviors for text indexing also apply to vectors.
++ Skillsets provide the Text Split skill for data chunking, plus skills that connect to embedding models. A few are generally available, others are still in preview. Skills and vectorizers are used to generate embeddings. The skill you choose for indexing should be paired with an [equivalent vectorizer](vector-search-integrated-vectorization.md#using-integrated-vectorization-in-queries) for queries. For vectorization during indexing, choose from the following skills:
-+ If vector data is sourced in files, we recommend a nondefault `parsingMode` such as `json`, `jsonLines`, or `csv` based on the shape of the data.
+ + [AzureOpenAIEmbedding skill](cognitive-search-skill-azure-openai-embedding.md)
+ + [Custom Web API skill](cognitive-search-custom-skill-web-api.md)
+ + [Azure AI Vision multimodal embeddings skill (preview)](cognitive-search-skill-vision-vectorize.md)
+ + [AML skill (preview)](cognitive-search-aml-skill.md) to generate embeddings for models hosted in the Azure AI Studio model catalog. See [How to implement integrated vectorization using models from Azure AI Studio](vector-search-integrated-vectorization-ai-studio.md) for details.
-+ For data sources, [Azure blob indexers](search-howto-indexing-azure-blob-storage.md) and [Azure Cosmos DB for NoSQL indexers](search-howto-index-cosmosdb.md) with one of the aforementioned parsingModes have been tested and confirmed to work.
++ Indexes provide the vector field definitions and vector search configurations. Those definitions are described in this article.
- Azure SQL doesn't provide a way to store a collection natively as a single SQL column. A workaround hasn't been identified at this time.
++ Indexers drive the indexing pipeline. For more information, see [Create an indexer](search-howto-create-indexers.md).
-+ The dimensions of all vectors from the data source must be the same and match their index definition for the field they're mapping to. The indexer throws an error on any documents that donΓÇÖt match.
+If you're familiar with indexers and skillsets:
-Skills and vectorizers are used to generate embeddings. For vectorization during indexing, choose from the following skills:
++ Field mappings, output field mappings, and deletion detection settings apply to vector and nonvector fields equally.
-+ [AzureOpenAIEmbedding skill](cognitive-search-skill-azure-openai-embedding.md)
-+ [Azure AI Vision multimodal embeddings skill](cognitive-search-skill-vision-vectorize.md)
-+ [AML skill](cognitive-search-aml-skill.md) to generate embeddings for models hosted in the Azure AI Studio model catalog. See [How to implement integrated vectorization using models from Azure AI Studio](vector-search-integrated-vectorization-ai-studio.md) for details.
++ If vector data is sourced in files, we recommend a nondefault `parsingMode` such as `json`, `jsonLines`, or `csv` based on the shape of the data. +++ For data sources, [Azure blob indexers](search-howto-indexing-azure-blob-storage.md) and [Azure Cosmos DB for NoSQL indexers](search-howto-index-cosmosdb.md) with one of the aforementioned parsingModes have been tested and confirmed to work. +++ The dimensions of all vectors from the data source must be the same and match their index definition for the field they're mapping to. The indexer throws an error on any documents that donΓÇÖt match. ## Check your index for vector content
-For validation purposes, you can query the index using Search Explorer in Azure portal or a REST API call. Because Azure AI Search can't convert a vector to human-readable text, try to return fields from the same document that provide evidence of the match. For example, if the vector query targets the "titleVector" field, you could select "title" for the search results.
+For validation purposes, you can query the index using Search Explorer in the Azure portal or a REST API call. Because Azure AI Search can't convert a vector to human-readable text, try to return fields from the same document that provide evidence of the match. For example, if the vector query targets the "titleVector" field, you could select "title" for the search results.
Fields must be attributed as "retrievable" to be included in the results. ### [**Azure portal**](#tab/portal-check-index)
-You can use [Search Explorer](search-explorer.md) to query an index. Search explorer has two views: Query view (default) and JSON view.
++ Review the indexes in **Search management** > **Indexes** to view index size all-up and vector index size. A positive vector index size indicates vectors are present.+++ Use [Search Explorer](search-explorer.md) to query an index. Search Explorer has two views: Query view (default) and JSON view. +
+ + Set **Query options** > **Hide vector values in search results** for more readable results.
+
+ + [Use the JSON view for vector queries](vector-search-how-to-query.md). You can either paste in a JSON definition of the vector query you want to execute, or use the built-in text-to-vector or image-to-vector conversion if your index has a [vectorizer assignment](vector-search-how-to-configure-vectorizer.md). For more information about image search, see [Quickstart: Search for images in Search Explorer](search-get-started-portal-image-search.md).
-+ [Use the JSON view for vector queries](vector-search-how-to-query.md), pasting in a JSON definition of the vector query you want to execute.
+ + Use the default Query view for a quick confirmation that the index contains vectors. The query view is for full text search. Although you can't use it for vector queries, you can send an empty search (`search=*`) to check for content. The content of all fields, including vector fields, is returned as plain text.
-+ Use the default Query view for a quick confirmation that the index contains vectors. The query view is for full text search. Although you can't use it for vector queries, you can send an empty search (`search=*`) to check for content. The content of all fields, including vector fields, is returned as plain text.
+ + See [Create a vector query](vector-search-how-to-query.md) for more details.
### [**REST API**](#tab/rest-check-index) The following REST API example is a vector query, but it returns only nonvector fields (title, content, category). Only fields marked as "retrievable" can be returned in search results. ```http
-POST https://my-search-service.search.windows.net/indexes/my-index/docs/search?api-version=2023-11-01
+POST https://my-search-service.search.windows.net/indexes/my-index/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
api-key: {{admin-api-key}}
To update a vector store, modify the schema and if necessary, reload documents to populate new fields. APIs for schema updates include [Create or Update Index (REST)](/rest/api/searchservice/indexes/create-or-update), [CreateOrUpdateIndex](/dotnet/api/azure.search.documents.indexes.searchindexclient.createorupdateindexasync) in the Azure SDK for .NET, [create_or_update_index](/python/api/azure-search-documents/azure.search.documents.indexes.searchindexclient?view=azure-python#azure-search-documents-indexes-searchindexclient-create-or-update-index&preserve-view=true) in the Azure SDK for Python, and similar methods in other Azure SDKs.
-The standard guidance for updating an index is covered in [Drop and rebuild an index](search-howto-reindex.md).
+The standard guidance for updating an index is covered in [Update or rebuild an index](search-howto-reindex.md).
Key points include:
Key points include:
## Next steps
-As a next step, we recommend [Query vector data in a search index](vector-search-how-to-query.md).
+As a next step, we recommend [Query vector data in a search index](vector-search-how-to-query.md).
Code samples in the [azure-search-vector](https://github.com/Azure/azure-search-vector-samples) repository demonstrate end-to-end workflows that include schema definition, vectorization, indexing, and queries.
search Vector Search How To Generate Embeddings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/vector-search-how-to-generate-embeddings.md
- ignite-2023 Previously updated : 10/30/2023 Last updated : 08/05/2024 # Generate embeddings for search queries and documents
-Azure AI Search doesn't host vectorization models, so one of your challenges is creating embeddings for query inputs and outputs. You can use any embedding model, but this article assumes Azure OpenAI embeddings models. Demos in the [sample repository](https://github.com/Azure/azure-search-vector-samples/tree/main) tap the [similarity embedding models](/azure/ai-services/openai/concepts/models#embeddings-models) of Azure OpenAI.
+Azure AI Search doesn't host vectorization models, so one of your challenges is creating embeddings for query inputs and outputs. You can use any embedding model, but this article assumes Azure OpenAI embedding models.
-Dimension attributes have a minimum of 2 and a maximum of 4096 dimensions per vector field.
+We recommend [integrated vectorization](vector-search-integrated-vectorization.md), which provides built-in data chunking and vectorization. Integrated vectorization takes a dependency on indexers, skillsets, and built-in or custom skills that point to a model that executes externally from Azure AI Search.
-> [!NOTE]
-> This article applies to the generally available version of [vector search](vector-search-overview.md), which assumes your application code calls an external resource such as Azure OpenAI for vectorization. A new feature called [integrated vectorization](vector-search-integrated-vectorization.md), currently in preview, offers embedded vectorization. Integrated vectorization takes a dependency on indexers, skillsets, and either the AzureOpenAIEmbedding skill or a custom skill that points to a model that executes externally from Azure AI Search.
+If you want to handle data chunking and vectorization yourself, we provide demos in the [sample repository](https://github.com/Azure/azure-search-vector-samples/tree/main) that show you how to integrate with other community solutions.
-## How models are used
+## How embedding models are used in vector queries
-+ Query inputs require that you submit user-provided input to an embedding model that quickly converts human readable text into a vector.
++ Query inputs are either vectors, or text or images that are converted to vectors during query processing. The built-in solution in Azure AI Search is to use a vectorizer.
- + For example, you can use **text-embedding-ada-002** to generate text embeddings and [Image Retrieval REST API](/rest/api/computervision/2023-02-01-preview/image-retrieval/vectorize-image) for image embeddings.
+ Alternatively, you can also handle the conversion yourself by passing the query input to an embedding model of your choice. To avoid [rate limiting](/azure/ai-services/openai/quotas-limits), you can implement retry logic in your workload. For the Python demo, we used [tenacity](https://pypi.org/project/tenacity/).
- + To avoid [rate limiting](/azure/ai-services/openai/quotas-limits), you can implement retry logic in your workload. For the Python demo, we used [tenacity](https://pypi.org/project/tenacity/).
-
-+ Query outputs are any matching documents found in a search index. Your search index must have been previously loaded with documents having one or more vector fields with embeddings. Whatever model you used for indexing, use the same model for queries.
++ Query outputs are any matching documents found in a search index. Your search index must have been previously loaded with documents having one or more vector fields with embeddings. Whatever embedding model you used for indexing, use that same model for queries. ## Create resources in the same region If you want resources in the same region, start with:
-1. [A region for the similarity embedding model](/azure/ai-services/openai/concepts/models#embeddings-models-1), currently in Europe and the United States.
+1. [Check regions for a text embedding model](/azure/ai-services/openai/concepts/models#standard-and-global-standard-deployment-model-quota).
-1. [A region for Azure AI Search](search-region-support.md).
+1. [Find the same region for Azure AI Search](search-region-support.md).
-1. To support hybrid queries that include [semantic ranking](semantic-how-to-query-request.md), or if you want to try machine learning model integration using a [custom skill](cognitive-search-custom-skill-interface.md) in an [AI enrichment pipeline](cognitive-search-concept-intro.md), note the regions that provide those features.
+1. To support hybrid queries that include [semantic ranking](semantic-how-to-query-request.md), or if you want to try machine learning model integration using a [custom skill](cognitive-search-custom-skill-interface.md) in an [AI enrichment pipeline](cognitive-search-concept-intro.md), note the Azure AI Search regions that provide those features.
## Generate an embedding for an improvised query The following Python code generates an embedding that you can paste into the "values" property of a vector query. ```python
-!pip install openai==0.28.1
+!pip install openai
import openai
embeddings = response['data'][0]['embedding']
print(embeddings) ```
+Output is a vector array of 1,536 dimensions.
+ ## Tips and recommendations for embedding model integration
-+ **Identify use cases:** Evaluate the specific use cases where embedding model integration for vector search features can add value to your search solution. This can include matching image content with text content, cross-lingual searches, or finding similar documents.
-+ **Optimize cost and performance**: Vector search can be resource-intensive and is subject to maximum limits, so consider only vectorizing the fields that contain semantic meaning.
++ **Identify use cases**: Evaluate the specific use cases where embedding model integration for vector search features can add value to your search solution. This can include matching image content with text content, cross-lingual searches, or finding similar documents.++ **Design a chunking strategy**: Embedding models have limits on the number of tokens they can accept, which introduces a data chunking requirement for large files. For more information, see [Chunk large documents for vector search solutions](vector-search-how-to-chunk-documents.md).++ **Optimize cost and performance**: Vector search can be resource-intensive and is subject to maximum limits, so consider only vectorizing the fields that contain semantic meaning. [Reduce vector size]() so that you can store more vectors for the same price. + **Choose the right embedding model:** Select an appropriate model for your specific use case, such as word embeddings for text-based searches or image embeddings for visual searches. Consider using pretrained models like **text-embedding-ada-002** from OpenAI or **Image Retrieval** REST API from [Azure AI Computer Vision](/azure/ai-services/computer-vision/how-to/image-retrieval). + **Normalize Vector lengths**: Ensure that the vector lengths are normalized before storing them in the search index to improve the accuracy and performance of similarity search. Most pretrained models already are normalized but not all. + **Fine-tune the model**: If needed, fine-tune the selected model on your domain-specific data to improve its performance and relevance to your search application.
search Vector Search How To Index Binary Data https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/vector-search-how-to-index-binary-data.md
- build-2024 Previously updated : 05/30/2024 Last updated : 08/05/2024 # Index binary vectors for vector search
-> [!IMPORTANT]
-> Binary data types are in public preview under [Supplemental Terms of Use](https://azure.microsoft.com/support/legal/preview-supplemental-terms/). The [2024-05-01-preview REST API](/rest/api/searchservice/operation-groups?view=rest-searchservice-2024-03-01-preview&preserve-view=true) and later preview APIs provide the new data type.
-
-Beginning with the 2024-05-01-preview REST API, Azure AI Search supports a packed binary type of `Collection(Edm.Byte)` for further reducing the storage and memory footprint of vector data. You can use this data type for output from models such as [Cohere's Embed v3 binary embedding models](https://cohere.com/blog/introducing-embed-v3).
+Azure AI Search supports a packed binary type of `Collection(Edm.Byte)` for further reducing the storage and memory footprint of vector data. You can use this data type for output from models such as [Cohere's Embed v3 binary embedding models](https://cohere.com/blog/introducing-embed-v3).
There are three steps to configuring an index for binary vectors:
There are three steps to configuring an index for binary vectors:
This article assumes you're familiar with [creating an index in Azure AI Search](search-how-to-create-search-index.md). It uses the REST APIs to illustrate each step, but you could also add a binary field to an index in the Azure portal.
+Binary data types are generally available starting with API version 2024-07-01 and are assigned to fields using the [Create Index](/rest/api/searchservice/indexes/create) or [Create Or Update Index](/rest/api/searchservice/indexes/create-or-update) APIs.
+
+> [!TIP]
+> If you're investigating binary vector support for its smaller footprint, you might also consider the vector quantization and storage reduction features in Azure AI Search. Inputs are float32 or float16 embeddings. Output is stored data in a much smaller format. For more information, see [Reduce vector size through quantization, narrow data types, and storage options](vector-search-how-to-configure-compression-storage.md).
+ ## Prerequisites + Binary vectors, with 1 bit per dimension, packaged in uint8 values with 8 bits per value. These can be obtained by using models that directly generate "packaged binary" vectors, or by quantizing vectors into binary vectors client-side during indexing and searching. ## Limitations
-+ No scalar compression or integrated vectorization support.
+ No Azure portal support in the Import and vectorize data wizard. + No support for binary fields in the [AML skill](cognitive-search-aml-skill.md) that's used for integrated vectorization of models in the Azure AI Studio model catalog.
This article assumes you're familiar with [creating an index in Azure AI Search]
Vector search algorithms are used to create the query navigation structures during indexing. For binary vector fields, vector comparisons are performed using the Hamming distance metric.
-1. To add a binary field to an index, set up a [`Create or Update Index`](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-05-01-preview&preserve-view=true) request using the **2024-05-01-preview REST API** or the Azure portal.
+1. To add a binary field to an index, set up a [`Create or Update Index`](/rest/api/searchservice/indexes/create-or-update?view=rest-searchservice-2024-07-01&preserve-view=true) request using the REST API or the Azure portal.
1. In the index schema, add a `vectorSearch` section that specifies profiles and algorithms. 1. Add one or more [vector search algorithms](vector-search-ranking.md) that have a similarity metric of `hamming`. It's common to use Hierarchical Navigable Small Worlds (HNSW), but you can also use Hamming distance with exhaustive K-nearest neighbors.
-1. Add one or more vector profiles that specify the algorithm. You can't specify scalar compression or a vectorizer in this preview.
+1. Add one or more vector profiles that specify the algorithm.
The following example shows a basic `vectorSearch` configuration:
The fields collection of an index must include a field for the document key, vec
Binary fields are of type `Collection(Edm.Byte)` and contain embeddings in packed form. For example, if the original embedding dimension is `1024`, the packed binary vector length is `ceiling(1024 / 8) = 128`. You get the packed form by setting the `vectorEncoding` property on the field.
-1. Add a field to the fields collection and give it name.
-1. Set data type to `Collection(Edm.Byte)`.
-1. Set `vectorEncoding` to `packedBit` for binary encoding.
-1. Set `dimensions` to `1024`. Specify the original (unpacked) vector dimension.
-1. Set `vectorSearchProfile` to a profile you defined in the previous step.
+> [!div class="checklist"]
+> + Add a field to the fields collection and give it name.
+> + Set data type to `Collection(Edm.Byte)`.
+> + Set `vectorEncoding` to `packedBit` for binary encoding.
+> + Set `dimensions` to `1024`. Specify the original (unpacked) vector dimension.
+> + Set `vectorSearchProfile` to a profile you defined in the previous step.
+> + Make the field searchable.
-The minimum definition of a fields collection should look similar to the following example:
+The following field definition is an example of the properties you should set:
```json ΓÇ» "fields": [
-ΓÇ» ΓÇ» {
-ΓÇ» ΓÇ» ΓÇ» "name": "Id",
-ΓÇ» ΓÇ» ΓÇ» "type": "Edm.String",
-ΓÇ» ΓÇ» ΓÇ» "key": true,
-ΓÇ» ΓÇ» ΓÇ» "searchable": true
-ΓÇ» ΓÇ» },
+ . . .
ΓÇ» ΓÇ» { ΓÇ» ΓÇ» ΓÇ» "name": "my-binary-vector-field", ΓÇ» ΓÇ» ΓÇ» "type": "Collection(Edm.Byte)", ΓÇ» ΓÇ» ΓÇ» "vectorEncoding": "packedBit", ΓÇ» ΓÇ» ΓÇ» "dimensions": 1024,
-ΓÇ» ΓÇ» ΓÇ» "vectorSearchProfile": "myHnswProfile"
-ΓÇ» ΓÇ» }
+ΓÇ» ΓÇ» ΓÇ» "vectorSearchProfile": "myHnswProfile",
+ "searchable": true
+ΓÇ» ΓÇ» },
+ . . .
ΓÇ» ] ```
search Vector Search How To Query https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/search/vector-search-how-to-query.md
- build-2024 Previously updated : 06/12/2024 Last updated : 08/05/2024 # Create a vector query in Azure AI Search
In Azure AI Search, if you have a [vector index](vector-search-how-to-create-ind
> + [Query vector fields](#vector-query-request) > + [Filter a vector query](#vector-query-with-filter) > + [Query multiple vector fields at once](#multiple-vector-fields)
-> + [Query with integrated vectorization (preview)](#query-with-integrated-vectorization-preview)
+> + [Set vector weights](#vector-weighting)
+> + [Query with integrated vectorization](#query-with-integrated-vectorization)
> + [Set thresholds to exclude low-scoring results (preview)](#set-thresholds-to-exclude-low-scoring-results-preview)
-> + [Set vector weights (preview)](#vector-weighting-preview)
This article uses REST for illustration. For code samples in other languages, see the [azure-search-vector-samples](https://github.com/Azure/azure-search-vector-samples) GitHub repository for end-to-end solutions that include vector queries.
-You can also use [Search explorer](search-explorer.md) in the Azure portal if you [configure a vectorizer](vector-search-how-to-configure-vectorizer.md) that converts strings into embeddings.
+You can also use [Search Explorer](search-explorer.md) in the Azure portal.
## Prerequisites
You can also use [Search explorer](search-explorer.md) in the Azure portal if yo
+ [A vector index on Azure AI Search](vector-search-how-to-create-index.md). Check for a `vectorSearch` section in your index to confirm a vector index. ++ Optionally, [add a vectorizer](vector-search-how-to-configure-vectorizer.md) to your index for built-in text-to-vector or image-to-vector conversion during queries.+ + Visual Studio Code with a [REST client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) and sample data if you want to run these examples on your own. To get started with the REST client, see [Quickstart: Azure AI Search using REST](search-get-started-rest.md). ## Convert a query string input into a vector
To query a vector field, the query itself must be a vector.
One approach for converting a user's text query string into its vector representation is to call an embedding library or API in your application code. As a best practice, *always use the same embedding models used to generate embeddings in the source documents*. You can find code samples showing [how to generate embeddings](vector-search-how-to-generate-embeddings.md) in the [azure-search-vector-samples](https://github.com/Azure/azure-search-vector-samples) repository.
-A second approach is [using integrated vectorization](#query-with-integrated-vectorization-preview), currently in public preview, to have Azure AI Search handle your query vectorization inputs and outputs.
+A second approach is [using integrated vectorization](#query-with-integrated-vectorization), now generally available, to have Azure AI Search handle your query vectorization inputs and outputs.
Here's a REST API example of a query string submitted to a deployment of an Azure OpenAI embedding model:
In this approach, your application code is responsible for connecting to a model
This section shows you the basic structure of a vector query. You can use the Azure portal, REST APIs, or the Azure SDKs to formulate a vector query. If you're migrating from [**2023-07-01-Preview**](/rest/api/searchservice/index-preview), there are breaking changes. See [Upgrade to the latest REST API](search-api-migration.md) for details.
-### [**2023-11-01**](#tab/query-2023-11-01)
+### [**2024-07-01**](#tab/query-2024-07-01)
-[**2023-11-01**](/rest/api/searchservice/search-service-api-versions#2023-11-01) is the stable REST API version for [Search POST](/rest/api/searchservice/documents/search-post). This version supports:
+[**2024-07-01**](/rest/api/searchservice/search-service-api-versions#2024-07-01) is the stable REST API version for [Search POST](/rest/api/searchservice/documents/search-post). This version supports:
+ `vectorQueries` is the construct for vector search.
-+ `kind` set to `vector` specifies that the query is a vector array.
-+ `vector` is query (a vector representation of text or an image).
++ `vectorQueries.kind` set to `vector` for a vector array, or set to `text` if the input is a string and [you have a vectorizer](#query-with-integrated-vectorization).++ `vectorQueries.vector` is query (a vector representation of text or an image).++ `vectorQueries.weight` (optional) specifies the relative weight of each vector query included in search operations (see [Vector weighting](#vector-weighting)). + `exhaustive` (optional) invokes exhaustive KNN at query time, even if the field is indexed for HNSW. In the following example, the vector is a representation of this string: "what Azure services support full text search". The query targets the `contentVector` field. The query returns `k` results. The actual vector has 1536 embeddings, so it's trimmed in this example for readability. ```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-11-01
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
api-key: {{admin-api-key}}
], "exhaustive": true, "fields": "contentVector",
+ "weight": 0.5,
"k": 5 } ] } ```
-### [**2023-10-01-Preview**](#tab/query-2023-10-01-Preview)
+### [**2024-05-01-preview**](#tab/query-2024-05-01-preview)
-[**2023-10-01-Preview**](/rest/api/searchservice/search-service-api-versions#2023-10-01-Preview) is the preview API version for [Search POST](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2023-10-01-preview&tabs=HTTP&preserve-view=true). It supports the same vector query syntax as 2023-11-01 (shown in this tab), but also adds [integrated vectorization of text queries](#query-with-integrated-vectorization-preview).
+[**2024-05-01-preview**](/rest/api/searchservice/search-service-api-versions#2024-05-01-preview) is the latest preview API version for [Search - POST](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2024-05-01-preview&tabs=HTTP&preserve-view=true). It supports the same vector query syntax as **2024-07-01**, with extra parameters for hybrid search and minimum thresholds for excluding weaker results.
-+ `vectorQueries` is the construct for vector search.
-+ `kind` set to `vector` specifies that the query is a vector array.
-+ `vector` is query (a vector representation of text or an image).
-+ `exhaustive` (optional) invokes exhaustive KNN at query time, even if the field is indexed for HNSW.
+This preview adds:
+++ [`threshold`](#set-thresholds-to-exclude-low-scoring-results-preview) for excluding low scoring results.++ [`Hybridsearch.MaxTextRecallSize`](hybrid-search-how-to-query.md#set-maxtextrecallsize-and-countandfacetmode-preview) for more control over the inputs to a [hybrid query](hybrid-search-how-to-query.md). In the following example, the vector is a representation of this string: "what Azure services support full text search". The query targets the `contentVector` field. The query returns `k` results. The actual vector has 1536 embeddings, so it's trimmed in this example for readability. ```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-10-01-Preview
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-05-01-preview
Content-Type: application/json api-key: {{admin-api-key}} { "count": true, "select": "title, content, category",
+ "hybridSearch": {
+ "maxTextRecallSize": 100,
+ "countAndFacetMode": "countAllResults"
+ }
"vectorQueries": [ { "kind": "vector",
api-key: {{admin-api-key}}
-0.02178128, -0.00086512347 ],
- "exhaustive": true,
"fields": "contentVector",
- "k": 5
+ "k": 5,
+ "exhaustive": true,
+ "weight": 2,
+ "threshold": {
+ "kind": "vectorSimilarity",
+ "value": 0.8
+ },
+ } ]
-}
-```
-
-### [**2023-07-01-Preview**](#tab/query-vector-query)
-
-> [!IMPORTANT]
-> The vector query syntax for this version is obsolete in later versions. We recommend [upgrading to the latest REST API](search-api-migration.md).
-
-[**2023-07-01-Preview**](/rest/api/searchservice/index-preview) first introduced vector query support to [Search Documents](/rest/api/searchservice/preview-api/search-documents). This version added:
-
-+ `vectors` for specifying a vector to search for, vector fields to search in, and the k-number of nearest neighbors to return.
-
-In the following example, the vector is a representation of this query string: "what Azure services support full text search". The query targets the `contentVector` field. The query returns `k` results. The actual vector has 1536 embeddings. It's trimmed in this example for readability.
-
-```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-10-01-Preview
-Content-Type: application/json
-api-key: {{admin-api-key}}
-{
- "vectors": [{
- "value": [
- -0.009154141,
- 0.018708462,
- . . .
- -0.02178128,
- -0.00086512347
- ],
- "fields": "contentVector",
- "k": 5
- }],
- "select": "title, content, category"
-}
```
-The response includes five matches, and each result provides a search score, title, content, and category. In a similarity search, the response always includes `k` matches, even if the similarity is weak. For indexes that have fewer than `k` documents, only those number of documents are returned.
-
-Notice that `select` returns textual fields from the index. Although the vector field is `retrievable` in this example, its content isn't meaningful as a search result, so it's often excluded in the results.
- ### [**Azure portal**](#tab/portal-vector-query)
-Use Search explorer to formulate a vector query. Search explorer has a **Query view** and **JSON View**. You must use **JSON view**, and you must formulate the vector query in JSON. The search bar in **Query view** is for full text search and treats any vector input as plain text (it doesn't execute a vector search).
+Use Search Explorer to formulate a vector query. Search Explorer has a **Query view** and **JSON View**. If you have a vectorizer, you can use **Query view** (see [Query with integrated vectorization](#query-with-integrated-vectorization) for steps.)
-1. Sign in to Azure portal and find your search service.
+Otherwise, if you don't have a vectorizer, you must use **JSON view** and formulate the vector query in JSON, pasting in a vector array as the query input.
+
+1. Sign in to the [Azure portal](https://portal.azure.com) and find your search service.
1. Under **Search management** and **Indexes**, select the index.
Use Search explorer to formulate a vector query. Search explorer has a **Query v
:::image type="content" source="media/vector-search-how-to-query/select-json-view.png" alt-text="Screenshot of the index list." border="true":::
-1. By default, the search API is **2023-10-01-Preview**. You can choose another API version.
+1. By default, the search API is **2024-05-01-preview**. You can choose another API version.
1. Paste in a JSON vector query, and then select **Search**.
You can apply filters as exclusion criteria before the query executes, or after
> [!TIP] > If you don't have source fields with text or numeric values, check for document metadata, such as LastModified or CreatedBy properties, that might be useful in a metadata filter.
-### [**2023-11-01**](#tab/filter-2023-11-01)
+### [**2024-07-01**](#tab/filter-2024-07-01)
-[**2023-11-01**](/rest/api/searchservice/search-service-api-versions#2023-11-01) is the stable version for this API. It has:
+[**2024-07-01**](/rest/api/searchservice/search-service-api-versions#2024-07-01) is the stable version for this API. It has:
+ `vectorFilterMode` for prefilter (default) or postfilter [filtering modes](vector-search-filters.md). + `filter` provides the criteria. In the following example, the vector is a representation of this query string: "what Azure services support full text search". The query targets the `contentVector` field. The actual vector has 1536 embeddings, so it's trimmed in this example for readability.
-The filter criteria are applied to a filterable text field (`category `in this example) before the search engine executes the vector query.
+The filter criteria are applied to a filterable text field (`category` in this example) before the search engine executes the vector query.
```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-11-01
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
api-key: {{admin-api-key}}
} ```
-### [**2023-10-01-Preview**](#tab/filter-2023-10-01-Preview)
+### [**2024-05-01-preview**](#tab/filter-2024-05-01-preview)
-[**2023-10-01-Preview**](/rest/api/searchservice/search-service-api-versions#2023-10-01-Preview) introduces filter options. This version adds:
+[**2024-05-01-preview**](/rest/api/searchservice/search-service-api-versions#2024-05-01-preview) introduces filter options. This version adds:
+ `vectorFilterMode` for prefilter (default) or postfilter [filtering modes](vector-search-filters.md). + `filter` provides the criteria.
In the following example, the vector is a representation of this query string: "
The filter criteria are applied to a filterable text field (`category` in this example) before the search engine executes the vector query. ```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-10-01-Preview
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-05-01-preview
Content-Type: application/json api-key: {{admin-api-key}} {
api-key: {{admin-api-key}}
} ```
-### [**2023-07-01-Preview**](#tab/filter-2023-07-01-Preview)
-
-[**2023-07-01-Preview**](/rest/api/searchservice/index-preview) supports post-filtering only.
-
-In the following example, the vector is a representation of this query string: "what Azure services support full text search". The query targets the `contentVector` field. The actual vector has 1536 embeddings, so it's trimmed in this example for readability.
-
-In this API version, there's no prefilter support or `vectorFilterMode` parameter. The filter criteria are applied after the search engine executes the vector query. The set of `"k"` nearest neighbors is retrieved, and then combined with the set of filtered results. As such, the value of `"k"` predetermines the surface over which the filter is applied. For `"k": 10`, the filter is applied to 10 most similar documents. For `"k": 100`, the filter iterates over 100 documents (assuming the index contains 100 documents that are sufficiently similar to the query).
-
-```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-07-01-Preview
-Content-Type: application/json
-api-key: {{admin-api-key}}
-{
- "vectors": [
- {
- "value": [
- -0.009154141,
- 0.018708462,
- . . .
- -0.02178128,
- -0.00086512347
- ],
- "fields": "contentVector",
- "k": 10
- },
- ],
- "select": "title, content, category",
- "filter": "category eq 'Databases'"
-}
-```
- ## Multiple vector fields
api-key: {{admin-api-key}}
You can set the "vectorQueries.fields" property to multiple vector fields. The vector query executes against each vector field that you provide in the `fields` list. When querying multiple vector fields, make sure each one contains embeddings from the same embedding model, and that the query is also generated from the same embedding model. ```http
-POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-11-01
+POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
The following query example looks for similarity in both `myImageVector` and `my
Search results would include a combination of text and images, assuming your search index includes a field for the image file (a search index doesn't store images).
-## Query with integrated vectorization (preview)
+## Query with integrated vectorization
+
+This section shows a vector query that invokes the [integrated vectorization](vector-search-integrated-vectorization.md) that converts a text or [image query](search-get-started-portal-image-search.md) into a vector. We recommend the stable [**2024-07-01**](/rest/api/searchservice/documents/search-post) REST API, Search Explorer, or newer Azure SDK packages for this feature.
+
+A prerequisite is a search index having a [vectorizer configured and assigned](vector-search-how-to-configure-vectorizer.md) to a vector field. The vectorizer provides connection information to an embedding model used at query time.
+
+### [**Azure portal**](#tab/builtin-portal)
+
+Search Explorer supports integrated vectorization at query time. If your index contains vector fields and has a vectorizer, you can use the built-in text-to-vector conversion.
+
+1. Sign in to the [Azure portal](https://portal.azure.com/) with your Azure account, and go to your Azure AI Search service.
+
+1. From the left menu, expand **Search management** > **Indexes**, and select your index. Search Explorer is the first tab on the index page.
+
+1. Check **Vector profiles** to confirm you have a vectorizer.
-This section shows a vector query that invokes the new [integrated vectorization](vector-search-integrated-vectorization.md) preview feature that converts a text query into a vector. Use [**2023-10-01-Preview** REST API](/rest/api/searchservice/documents/search-post?view=rest-searchservice-2023-10-01-preview&preserve-view=true) and newer preview REST APIs or an updated beta Azure SDK package.
+ :::image type="content" source="media/vector-search-how-to-query/check-vectorizer.png" alt-text="Screenshot of a vectorizer setting in a search index.":::
-A prerequisite is a search index having a [vectorizer configured and assigned](vector-search-how-to-configure-vectorizer.md) to a vector field. The vectorizer provides connection information to an embedding model used at query time. Check the index definition for a vectorizers specification.
+1. In Search Explorer, you can enter a text string into the default search bar in query view. The built-in vectorizer converts your string into a vector, performs the search, and returns results.
+ Alternatively, you can select **View** > **JSON view** to view or modify the query. If vectors are present, Search Explorer sets up a vector query automatically. You can use JSON view to select fields used in search and in the response, add filters, or construct more advanced queries like hybrid. A JSON example is provided in the REST API tab of this section.
-Queries provide text strings instead of vectors:
+### [**REST API**](#tab/builtin-2024-07-01)
-+ `kind` must be set to `text` .
-+ `text` must have a text string. It's passed to the vectorizer assigned to the vector field.
-+ `fields` is the vector field to search.
+1. Use [Index - GET](/rest/api/searchservice/indexes/get) to return the index definition and check for the presence of a vectorizer configuration. Look for `vectorizers` in your index definition. It should specify a deployed embedding model.
+
+1. Use [Search - POST](/rest/api/searchservice/documents/search-post) for the query request.
+
+ + `kind` must be set to `text` .
+ + `text` must have a text string. It's passed to the vectorizer assigned to the vector field.
+ + `fields` is the vector field to search.
+ + `k` is the number of vector matches to return.
Here's a simple example of a query that's vectorized at query time. The text string is vectorized and then used to query the descriptionVector field. ```http
-POST https://{{search-service}}.search.windows.net/indexes/{{index}}/docs/search?api-version=2024-05-01-preview
+POST https://{{search-service}}.search.windows.net/indexes/{{index}}/docs/search?api-version=2024-07-01
{ "select": "title, genre, description", "vectorQueries": [
Here's a [hybrid query](hybrid-search-how-to-query.md) using integrated vectoriz
In this example, the search engine makes three vectorization calls to the vectorizers assigned to `descriptionVector`, `synopsisVector`, and `authorBioVector` in the index. The resulting vectors are used to retrieve documents against their respective fields. The search engine also executes a keyword search on the `search` query, "mystery novel set in London". ```http
-POST https://{{search-service}}.search.windows.net/indexes/{{index}}/docs/search?api-version=2024-05-01-preview
+POST https://{{search-service}}.search.windows.net/indexes/{{index}}/docs/search?api-version=2024-07-01
Content-Type: application/json api-key: {{admin-api-key}} {
api-key: {{admin-api-key}}
The scored results from all four queries are fused using [RRF ranking](hybrid-search-ranking.md). Secondary [semantic ranking](semantic-search-overview.md) is invoked over the fused search results, but on the `searchFields` only, boosting results that are the most semantically aligned to `"search":"mystery novel set in London"`. > [!NOTE]
-> Vectorizers are used during indexing and querying. If you don't need data chunking and vectorization in the index, you can skip steps like creating an indexer, skillset, and data source. In this scenario, the vectorizer is used only at query time to convert a text string to an embedding.
+> Vectorization occurs during indexing and querying. If you don't need data chunking and vectorization in the index, you can skip steps like creating an indexer, skillset, and data source. In this workflow, vectorization is used only at query time to convert a text string or an image into an embedding. You can define a vectorizer in the search index for this step.
++ ## Number of ranked results in a vector query response
Multiple sets are created if the query targets multiple vector fields, runs mult
During query execution, a vector query can only target one internal vector index. So for [multiple vector fields](#multiple-vector-fields) and [multiple vector queries](#multiple-vector-queries), the search engine generates multiple queries that target the respective vector indexes of each field. Output is a set of ranked results for each query, which are fused using RRF. For more information, see [Relevance scoring using Reciprocal Rank Fusion (RRF)](hybrid-search-ranking.md).
+## Vector weighting
+
+Add a `weight` query parameter to specify the relative weight of each vector query included in search operations. This value is used when combining the results of multiple ranking lists produced by two or more vector queries in the same request, or from the vector portion of a hybrid query.
+
+The default is 1.0 and the value must be a positive number larger than zero.
+
+Weights are used when calculating the [reciprocal rank fusion](hybrid-search-ranking.md#weighted-scores) scores of each document. The calculation is multiplier of the `weight` value against the rank score of the document within its respective result set.