diff --git a/sdk/search/Azure.Search.Documents/src/Generated/AliasesRestClient.cs b/sdk/search/Azure.Search.Documents/src/Generated/AliasesRestClient.cs
index 9ad3176a28b1..36ce277a15f6 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/AliasesRestClient.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/AliasesRestClient.cs
@@ -33,7 +33,7 @@ internal partial class AliasesRestClient
/// The tracking ID sent with the request to help with debugging.
/// Api Version.
/// , , or is null.
- public AliasesRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, Guid? xMsClientRequestId = null, string apiVersion = "2023-07-01-Preview")
+ public AliasesRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, Guid? xMsClientRequestId = null, string apiVersion = "2023-10-01-Preview")
{
ClientDiagnostics = clientDiagnostics ?? throw new ArgumentNullException(nameof(clientDiagnostics));
_pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline));
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/DataSourcesRestClient.cs b/sdk/search/Azure.Search.Documents/src/Generated/DataSourcesRestClient.cs
index b9563b3b0606..9c6c0cf0753a 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/DataSourcesRestClient.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/DataSourcesRestClient.cs
@@ -33,7 +33,7 @@ internal partial class DataSourcesRestClient
/// The tracking ID sent with the request to help with debugging.
/// Api Version.
/// , , or is null.
- public DataSourcesRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, Guid? xMsClientRequestId = null, string apiVersion = "2023-07-01-Preview")
+ public DataSourcesRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, Guid? xMsClientRequestId = null, string apiVersion = "2023-10-01-Preview")
{
ClientDiagnostics = clientDiagnostics ?? throw new ArgumentNullException(nameof(clientDiagnostics));
_pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline));
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/DocumentsRestClient.cs b/sdk/search/Azure.Search.Documents/src/Generated/DocumentsRestClient.cs
index 2319e790f4c7..74c7f24430f6 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/DocumentsRestClient.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/DocumentsRestClient.cs
@@ -37,7 +37,7 @@ internal partial class DocumentsRestClient
/// Api Version.
/// , , , or is null.
/// is an empty string, and was expected to be non-empty.
- public DocumentsRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, string indexName, Guid? xMsClientRequestId = null, string apiVersion = "2023-07-01-Preview")
+ public DocumentsRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, string indexName, Guid? xMsClientRequestId = null, string apiVersion = "2023-10-01-Preview")
{
ClientDiagnostics = clientDiagnostics ?? throw new ArgumentNullException(nameof(clientDiagnostics));
_pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline));
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/IndexersRestClient.cs b/sdk/search/Azure.Search.Documents/src/Generated/IndexersRestClient.cs
index b79f8dc26491..febb1b9e2bf5 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/IndexersRestClient.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/IndexersRestClient.cs
@@ -34,7 +34,7 @@ internal partial class IndexersRestClient
/// The tracking ID sent with the request to help with debugging.
/// Api Version.
/// , , or is null.
- public IndexersRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, Guid? xMsClientRequestId = null, string apiVersion = "2023-07-01-Preview")
+ public IndexersRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, Guid? xMsClientRequestId = null, string apiVersion = "2023-10-01-Preview")
{
ClientDiagnostics = clientDiagnostics ?? throw new ArgumentNullException(nameof(clientDiagnostics));
_pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline));
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/IndexesRestClient.cs b/sdk/search/Azure.Search.Documents/src/Generated/IndexesRestClient.cs
index 7bc689a0070d..62760b53cab2 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/IndexesRestClient.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/IndexesRestClient.cs
@@ -33,7 +33,7 @@ internal partial class IndexesRestClient
/// The tracking ID sent with the request to help with debugging.
/// Api Version.
/// , , or is null.
- public IndexesRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, Guid? xMsClientRequestId = null, string apiVersion = "2023-07-01-Preview")
+ public IndexesRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, string endpoint, Guid? xMsClientRequestId = null, string apiVersion = "2023-10-01-Preview")
{
ClientDiagnostics = clientDiagnostics ?? throw new ArgumentNullException(nameof(clientDiagnostics));
_pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline));
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIEmbeddingSkill.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIEmbeddingSkill.Serialization.cs
new file mode 100644
index 000000000000..eeea11d3f37e
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIEmbeddingSkill.Serialization.cs
@@ -0,0 +1,190 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Collections.Generic;
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class AzureOpenAIEmbeddingSkill : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsDefined(ResourceUri))
+ {
+ writer.WritePropertyName("resourceUri"u8);
+ writer.WriteStringValue(ResourceUri);
+ }
+ if (Optional.IsDefined(DeploymentId))
+ {
+ writer.WritePropertyName("deploymentId"u8);
+ writer.WriteStringValue(DeploymentId);
+ }
+ if (Optional.IsDefined(ApiKey))
+ {
+ writer.WritePropertyName("apiKey"u8);
+ writer.WriteStringValue(ApiKey);
+ }
+ if (Optional.IsDefined(AuthResourceId))
+ {
+ if (AuthResourceId != null)
+ {
+ writer.WritePropertyName("authResourceId"u8);
+ writer.WriteStringValue(AuthResourceId);
+ }
+ else
+ {
+ writer.WriteNull("authResourceId");
+ }
+ }
+ if (Optional.IsDefined(AuthIdentity))
+ {
+ if (AuthIdentity != null)
+ {
+ writer.WritePropertyName("authIdentity"u8);
+ writer.WriteObjectValue(AuthIdentity);
+ }
+ else
+ {
+ writer.WriteNull("authIdentity");
+ }
+ }
+ writer.WritePropertyName("@odata.type"u8);
+ writer.WriteStringValue(ODataType);
+ if (Optional.IsDefined(Name))
+ {
+ writer.WritePropertyName("name"u8);
+ writer.WriteStringValue(Name);
+ }
+ if (Optional.IsDefined(Description))
+ {
+ writer.WritePropertyName("description"u8);
+ writer.WriteStringValue(Description);
+ }
+ if (Optional.IsDefined(Context))
+ {
+ writer.WritePropertyName("context"u8);
+ writer.WriteStringValue(Context);
+ }
+ writer.WritePropertyName("inputs"u8);
+ writer.WriteStartArray();
+ foreach (var item in Inputs)
+ {
+ writer.WriteObjectValue(item);
+ }
+ writer.WriteEndArray();
+ writer.WritePropertyName("outputs"u8);
+ writer.WriteStartArray();
+ foreach (var item in Outputs)
+ {
+ writer.WriteObjectValue(item);
+ }
+ writer.WriteEndArray();
+ writer.WriteEndObject();
+ }
+
+ internal static AzureOpenAIEmbeddingSkill DeserializeAzureOpenAIEmbeddingSkill(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional resourceUri = default;
+ Optional deploymentId = default;
+ Optional apiKey = default;
+ Optional authResourceId = default;
+ Optional authIdentity = default;
+ string odataType = default;
+ Optional name = default;
+ Optional description = default;
+ Optional context = default;
+ IList inputs = default;
+ IList outputs = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("resourceUri"u8))
+ {
+ resourceUri = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("deploymentId"u8))
+ {
+ deploymentId = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("apiKey"u8))
+ {
+ apiKey = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("authResourceId"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ authResourceId = null;
+ continue;
+ }
+ authResourceId = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("authIdentity"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ authIdentity = null;
+ continue;
+ }
+ authIdentity = SearchIndexerDataIdentity.DeserializeSearchIndexerDataIdentity(property.Value);
+ continue;
+ }
+ if (property.NameEquals("@odata.type"u8))
+ {
+ odataType = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("name"u8))
+ {
+ name = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("description"u8))
+ {
+ description = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("context"u8))
+ {
+ context = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("inputs"u8))
+ {
+ List array = new List();
+ foreach (var item in property.Value.EnumerateArray())
+ {
+ array.Add(InputFieldMappingEntry.DeserializeInputFieldMappingEntry(item));
+ }
+ inputs = array;
+ continue;
+ }
+ if (property.NameEquals("outputs"u8))
+ {
+ List array = new List();
+ foreach (var item in property.Value.EnumerateArray())
+ {
+ array.Add(OutputFieldMappingEntry.DeserializeOutputFieldMappingEntry(item));
+ }
+ outputs = array;
+ continue;
+ }
+ }
+ return new AzureOpenAIEmbeddingSkill(odataType, name.Value, description.Value, context.Value, inputs, outputs, resourceUri.Value, deploymentId.Value, apiKey.Value, authResourceId.Value, authIdentity.Value);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIEmbeddingSkill.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIEmbeddingSkill.cs
new file mode 100644
index 000000000000..dbc209426ddf
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIEmbeddingSkill.cs
@@ -0,0 +1,70 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Collections.Generic;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Allows you to generate a vector embedding for a given text input using the Azure Open AI service.
+ public partial class AzureOpenAIEmbeddingSkill : SearchIndexerSkill
+ {
+ /// Initializes a new instance of AzureOpenAIEmbeddingSkill.
+ /// Inputs of the skills could be a column in the source data set, or the output of an upstream skill.
+ /// The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill.
+ /// or is null.
+ public AzureOpenAIEmbeddingSkill(IEnumerable inputs, IEnumerable outputs) : base(inputs, outputs)
+ {
+ Argument.AssertNotNull(inputs, nameof(inputs));
+ Argument.AssertNotNull(outputs, nameof(outputs));
+
+ ODataType = "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill";
+ }
+
+ /// Initializes a new instance of AzureOpenAIEmbeddingSkill.
+ /// Identifies the concrete type of the skill.
+ /// The name of the skill which uniquely identifies it within the skillset. A skill with no name defined will be given a default name of its 1-based index in the skills array, prefixed with the character '#'.
+ /// The description of the skill which describes the inputs, outputs, and usage of the skill.
+ /// Represents the level at which operations take place, such as the document root or document content (for example, /document or /document/content). The default is /document.
+ /// Inputs of the skills could be a column in the source data set, or the output of an upstream skill.
+ /// The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill.
+ /// The resource uri for your Azure Open AI resource.
+ /// ID of your Azure Open AI model deployment on the designated resource.
+ /// API key for the designated Azure Open AI resource.
+ /// This value should be the application ID created for the Azure Open AI resource when it was registered with Azure Active Directory. When specified, the skill connects to the Azure Open AI resource using a managed ID (either system or user-assigned) of the search service and the access token of the resource, using this value as the resource id for creating the scope of the access token.
+ ///
+ /// The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to "none", the value of this property is cleared.
+ /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
+ /// The available derived classes include and .
+ ///
+ internal AzureOpenAIEmbeddingSkill(string oDataType, string name, string description, string context, IList inputs, IList outputs, string resourceUri, string deploymentId, string apiKey, string authResourceId, SearchIndexerDataIdentity authIdentity) : base(oDataType, name, description, context, inputs, outputs)
+ {
+ ResourceUri = resourceUri;
+ DeploymentId = deploymentId;
+ ApiKey = apiKey;
+ AuthResourceId = authResourceId;
+ AuthIdentity = authIdentity;
+ ODataType = oDataType ?? "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill";
+ }
+
+ /// The resource uri for your Azure Open AI resource.
+ public string ResourceUri { get; set; }
+ /// ID of your Azure Open AI model deployment on the designated resource.
+ public string DeploymentId { get; set; }
+ /// API key for the designated Azure Open AI resource.
+ public string ApiKey { get; set; }
+ /// This value should be the application ID created for the Azure Open AI resource when it was registered with Azure Active Directory. When specified, the skill connects to the Azure Open AI resource using a managed ID (either system or user-assigned) of the search service and the access token of the resource, using this value as the resource id for creating the scope of the access token.
+ public string AuthResourceId { get; set; }
+ ///
+ /// The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to "none", the value of this property is cleared.
+ /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
+ /// The available derived classes include and .
+ ///
+ public SearchIndexerDataIdentity AuthIdentity { get; set; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIParameters.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIParameters.Serialization.cs
new file mode 100644
index 000000000000..a53d09f99419
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIParameters.Serialization.cs
@@ -0,0 +1,112 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class AzureOpenAIParameters : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsDefined(ResourceUri))
+ {
+ writer.WritePropertyName("resourceUri"u8);
+ writer.WriteStringValue(ResourceUri);
+ }
+ if (Optional.IsDefined(DeploymentId))
+ {
+ writer.WritePropertyName("deploymentId"u8);
+ writer.WriteStringValue(DeploymentId);
+ }
+ if (Optional.IsDefined(ApiKey))
+ {
+ writer.WritePropertyName("apiKey"u8);
+ writer.WriteStringValue(ApiKey);
+ }
+ if (Optional.IsDefined(AuthResourceId))
+ {
+ if (AuthResourceId != null)
+ {
+ writer.WritePropertyName("authResourceId"u8);
+ writer.WriteStringValue(AuthResourceId);
+ }
+ else
+ {
+ writer.WriteNull("authResourceId");
+ }
+ }
+ if (Optional.IsDefined(AuthIdentity))
+ {
+ if (AuthIdentity != null)
+ {
+ writer.WritePropertyName("authIdentity"u8);
+ writer.WriteObjectValue(AuthIdentity);
+ }
+ else
+ {
+ writer.WriteNull("authIdentity");
+ }
+ }
+ writer.WriteEndObject();
+ }
+
+ internal static AzureOpenAIParameters DeserializeAzureOpenAIParameters(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional resourceUri = default;
+ Optional deploymentId = default;
+ Optional apiKey = default;
+ Optional authResourceId = default;
+ Optional authIdentity = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("resourceUri"u8))
+ {
+ resourceUri = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("deploymentId"u8))
+ {
+ deploymentId = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("apiKey"u8))
+ {
+ apiKey = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("authResourceId"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ authResourceId = null;
+ continue;
+ }
+ authResourceId = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("authIdentity"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ authIdentity = null;
+ continue;
+ }
+ authIdentity = SearchIndexerDataIdentity.DeserializeSearchIndexerDataIdentity(property.Value);
+ continue;
+ }
+ }
+ return new AzureOpenAIParameters(resourceUri.Value, deploymentId.Value, apiKey.Value, authResourceId.Value, authIdentity.Value);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIParameters.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIParameters.cs
new file mode 100644
index 000000000000..9989db0e8229
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIParameters.cs
@@ -0,0 +1,52 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Contains the parameters specific to using the Azure Open AI service for vectorization at query time.
+ public partial class AzureOpenAIParameters
+ {
+ /// Initializes a new instance of AzureOpenAIParameters.
+ public AzureOpenAIParameters()
+ {
+ }
+
+ /// Initializes a new instance of AzureOpenAIParameters.
+ /// The resource uri for your Azure Open AI resource.
+ /// ID of your Azure Open AI model deployment on the designated resource.
+ /// API key for the designated Azure Open AI resource.
+ /// This value should be the application ID created for the Azure Open AI resource when it was registered with Azure Active Directory. When specified, the query connects to the Azure Open AI resource using a managed ID (either system or user-assigned) of the search service and the access token of the resource, using this value as the resource id for creating the scope of the access token.
+ ///
+ /// The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to "none", the value of this property is cleared.
+ /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
+ /// The available derived classes include and .
+ ///
+ internal AzureOpenAIParameters(string resourceUri, string deploymentId, string apiKey, string authResourceId, SearchIndexerDataIdentity authIdentity)
+ {
+ ResourceUri = resourceUri;
+ DeploymentId = deploymentId;
+ ApiKey = apiKey;
+ AuthResourceId = authResourceId;
+ AuthIdentity = authIdentity;
+ }
+
+ /// The resource uri for your Azure Open AI resource.
+ public string ResourceUri { get; set; }
+ /// ID of your Azure Open AI model deployment on the designated resource.
+ public string DeploymentId { get; set; }
+ /// API key for the designated Azure Open AI resource.
+ public string ApiKey { get; set; }
+ /// This value should be the application ID created for the Azure Open AI resource when it was registered with Azure Active Directory. When specified, the query connects to the Azure Open AI resource using a managed ID (either system or user-assigned) of the search service and the access token of the resource, using this value as the resource id for creating the scope of the access token.
+ public string AuthResourceId { get; set; }
+ ///
+ /// The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to "none", the value of this property is cleared.
+ /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
+ /// The available derived classes include and .
+ ///
+ public SearchIndexerDataIdentity AuthIdentity { get; set; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIVectorizer.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIVectorizer.Serialization.cs
new file mode 100644
index 000000000000..bd5a1d3e4a4f
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIVectorizer.Serialization.cs
@@ -0,0 +1,64 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class AzureOpenAIVectorizer : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsDefined(AzureOpenAIParameters))
+ {
+ writer.WritePropertyName("azureOpenAIParameters"u8);
+ writer.WriteObjectValue(AzureOpenAIParameters);
+ }
+ writer.WritePropertyName("name"u8);
+ writer.WriteStringValue(Name);
+ writer.WritePropertyName("kind"u8);
+ writer.WriteStringValue(Kind);
+ writer.WriteEndObject();
+ }
+
+ internal static AzureOpenAIVectorizer DeserializeAzureOpenAIVectorizer(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional azureOpenAIParameters = default;
+ string name = default;
+ string kind = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("azureOpenAIParameters"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ azureOpenAIParameters = AzureOpenAIParameters.DeserializeAzureOpenAIParameters(property.Value);
+ continue;
+ }
+ if (property.NameEquals("name"u8))
+ {
+ name = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("kind"u8))
+ {
+ kind = property.Value.GetString();
+ continue;
+ }
+ }
+ return new AzureOpenAIVectorizer(name, kind, azureOpenAIParameters.Value);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIVectorizer.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIVectorizer.cs
new file mode 100644
index 000000000000..521b68ce244a
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/AzureOpenAIVectorizer.cs
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Contains the parameters specific to using the Azure Open AI service for vectorization at query time.
+ public partial class AzureOpenAIVectorizer : VectorSearchVectorizer
+ {
+ /// Initializes a new instance of AzureOpenAIVectorizer.
+ /// The name to associate with this particular vectorization method.
+ /// is null.
+ public AzureOpenAIVectorizer(string name) : base(name)
+ {
+ Argument.AssertNotNull(name, nameof(name));
+
+ Kind = "azureOpenAI";
+ }
+
+ /// Initializes a new instance of AzureOpenAIVectorizer.
+ /// The name to associate with this particular vectorization method.
+ /// The name of the kind of vectorization method being configured for use with vector search.
+ /// Contains the parameters specific to Azure Open AI embedding vectorization.
+ internal AzureOpenAIVectorizer(string name, string kind, AzureOpenAIParameters azureOpenAIParameters) : base(name, kind)
+ {
+ AzureOpenAIParameters = azureOpenAIParameters;
+ Kind = kind ?? "azureOpenAI";
+ }
+
+ /// Contains the parameters specific to Azure Open AI embedding vectorization.
+ public AzureOpenAIParameters AzureOpenAIParameters { get; set; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizer.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizer.Serialization.cs
new file mode 100644
index 000000000000..67ec3dde95a0
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizer.Serialization.cs
@@ -0,0 +1,64 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class CustomVectorizer : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsDefined(CustomVectorizerParameters))
+ {
+ writer.WritePropertyName("customVectorizerParameters"u8);
+ writer.WriteObjectValue(CustomVectorizerParameters);
+ }
+ writer.WritePropertyName("name"u8);
+ writer.WriteStringValue(Name);
+ writer.WritePropertyName("kind"u8);
+ writer.WriteStringValue(Kind);
+ writer.WriteEndObject();
+ }
+
+ internal static CustomVectorizer DeserializeCustomVectorizer(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional customVectorizerParameters = default;
+ string name = default;
+ string kind = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("customVectorizerParameters"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ customVectorizerParameters = CustomVectorizerParameters.DeserializeCustomVectorizerParameters(property.Value);
+ continue;
+ }
+ if (property.NameEquals("name"u8))
+ {
+ name = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("kind"u8))
+ {
+ kind = property.Value.GetString();
+ continue;
+ }
+ }
+ return new CustomVectorizer(name, kind, customVectorizerParameters.Value);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizer.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizer.cs
new file mode 100644
index 000000000000..caf1da21ad22
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizer.cs
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Contains the parameters specific to generating vector embeddings via a custom endpoint.
+ public partial class CustomVectorizer : VectorSearchVectorizer
+ {
+ /// Initializes a new instance of CustomVectorizer.
+ /// The name to associate with this particular vectorization method.
+ /// is null.
+ public CustomVectorizer(string name) : base(name)
+ {
+ Argument.AssertNotNull(name, nameof(name));
+
+ Kind = "customWebApi";
+ }
+
+ /// Initializes a new instance of CustomVectorizer.
+ /// The name to associate with this particular vectorization method.
+ /// The name of the kind of vectorization method being configured for use with vector search.
+ /// Contains the parameters specific to generating vector embeddings via a custom endpoint.
+ internal CustomVectorizer(string name, string kind, CustomVectorizerParameters customVectorizerParameters) : base(name, kind)
+ {
+ CustomVectorizerParameters = customVectorizerParameters;
+ Kind = kind ?? "customWebApi";
+ }
+
+ /// Contains the parameters specific to generating vector embeddings via a custom endpoint.
+ public CustomVectorizerParameters CustomVectorizerParameters { get; set; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizerParameters.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizerParameters.Serialization.cs
new file mode 100644
index 000000000000..58aa1781f69f
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizerParameters.Serialization.cs
@@ -0,0 +1,144 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Collections.Generic;
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class CustomVectorizerParameters : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsDefined(Uri))
+ {
+ writer.WritePropertyName("uri"u8);
+ writer.WriteStringValue(Uri);
+ }
+ if (Optional.IsCollectionDefined(HttpHeaders))
+ {
+ writer.WritePropertyName("httpHeaders"u8);
+ writer.WriteStartObject();
+ foreach (var item in HttpHeaders)
+ {
+ writer.WritePropertyName(item.Key);
+ writer.WriteStringValue(item.Value);
+ }
+ writer.WriteEndObject();
+ }
+ if (Optional.IsDefined(HttpMethod))
+ {
+ writer.WritePropertyName("httpMethod"u8);
+ writer.WriteStringValue(HttpMethod);
+ }
+ if (Optional.IsDefined(Timeout))
+ {
+ writer.WritePropertyName("timeout"u8);
+ writer.WriteStringValue(Timeout.Value, "P");
+ }
+ if (Optional.IsDefined(AuthResourceId))
+ {
+ if (AuthResourceId != null)
+ {
+ writer.WritePropertyName("authResourceId"u8);
+ writer.WriteStringValue(AuthResourceId);
+ }
+ else
+ {
+ writer.WriteNull("authResourceId");
+ }
+ }
+ if (Optional.IsDefined(AuthIdentity))
+ {
+ if (AuthIdentity != null)
+ {
+ writer.WritePropertyName("authIdentity"u8);
+ writer.WriteObjectValue(AuthIdentity);
+ }
+ else
+ {
+ writer.WriteNull("authIdentity");
+ }
+ }
+ writer.WriteEndObject();
+ }
+
+ internal static CustomVectorizerParameters DeserializeCustomVectorizerParameters(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional uri = default;
+ Optional> httpHeaders = default;
+ Optional httpMethod = default;
+ Optional timeout = default;
+ Optional authResourceId = default;
+ Optional authIdentity = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("uri"u8))
+ {
+ uri = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("httpHeaders"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ Dictionary dictionary = new Dictionary();
+ foreach (var property0 in property.Value.EnumerateObject())
+ {
+ dictionary.Add(property0.Name, property0.Value.GetString());
+ }
+ httpHeaders = dictionary;
+ continue;
+ }
+ if (property.NameEquals("httpMethod"u8))
+ {
+ httpMethod = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("timeout"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ timeout = property.Value.GetTimeSpan("P");
+ continue;
+ }
+ if (property.NameEquals("authResourceId"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ authResourceId = null;
+ continue;
+ }
+ authResourceId = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("authIdentity"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ authIdentity = null;
+ continue;
+ }
+ authIdentity = SearchIndexerDataIdentity.DeserializeSearchIndexerDataIdentity(property.Value);
+ continue;
+ }
+ }
+ return new CustomVectorizerParameters(uri.Value, Optional.ToDictionary(httpHeaders), httpMethod.Value, Optional.ToNullable(timeout), authResourceId.Value, authIdentity.Value);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizerParameters.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizerParameters.cs
new file mode 100644
index 000000000000..8c5cfccfecea
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/CustomVectorizerParameters.cs
@@ -0,0 +1,61 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Collections.Generic;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Contains the parameters specific to generating vector embeddings via a custom endpoint.
+ public partial class CustomVectorizerParameters
+ {
+ /// Initializes a new instance of CustomVectorizerParameters.
+ public CustomVectorizerParameters()
+ {
+ HttpHeaders = new ChangeTrackingDictionary();
+ }
+
+ /// Initializes a new instance of CustomVectorizerParameters.
+ /// The url for the Web API.
+ /// The headers required to make the http request.
+ /// The method for the http request.
+ /// The desired timeout for the request. Default is 30 seconds.
+ /// Applies to custom endpoints that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the vectorization connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.
+ ///
+ /// The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to "none", the value of this property is cleared.
+ /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
+ /// The available derived classes include and .
+ ///
+ internal CustomVectorizerParameters(string uri, IDictionary httpHeaders, string httpMethod, TimeSpan? timeout, string authResourceId, SearchIndexerDataIdentity authIdentity)
+ {
+ Uri = uri;
+ HttpHeaders = httpHeaders;
+ HttpMethod = httpMethod;
+ Timeout = timeout;
+ AuthResourceId = authResourceId;
+ AuthIdentity = authIdentity;
+ }
+
+ /// The url for the Web API.
+ public string Uri { get; set; }
+ /// The headers required to make the http request.
+ public IDictionary HttpHeaders { get; }
+ /// The method for the http request.
+ public string HttpMethod { get; set; }
+ /// The desired timeout for the request. Default is 30 seconds.
+ public TimeSpan? Timeout { get; set; }
+ /// Applies to custom endpoints that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the vectorization connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.
+ public string AuthResourceId { get; set; }
+ ///
+ /// The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to "none", the value of this property is cleared.
+ /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
+ /// The available derived classes include and .
+ ///
+ public SearchIndexerDataIdentity AuthIdentity { get; set; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/DataDeletionDetectionPolicy.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/DataDeletionDetectionPolicy.Serialization.cs
index 2d4d605eae85..30529ab84770 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/DataDeletionDetectionPolicy.Serialization.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/DataDeletionDetectionPolicy.Serialization.cs
@@ -31,6 +31,7 @@ internal static DataDeletionDetectionPolicy DeserializeDataDeletionDetectionPoli
{
switch (discriminator.GetString())
{
+ case "#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy": return NativeBlobSoftDeleteDeletionDetectionPolicy.DeserializeNativeBlobSoftDeleteDeletionDetectionPolicy(element);
case "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy": return SoftDeleteColumnDeletionDetectionPolicy.DeserializeSoftDeleteColumnDeletionDetectionPolicy(element);
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/DataDeletionDetectionPolicy.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/DataDeletionDetectionPolicy.cs
index f4d41827dcad..86d3b9713270 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/DataDeletionDetectionPolicy.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/DataDeletionDetectionPolicy.cs
@@ -10,7 +10,7 @@ namespace Azure.Search.Documents.Indexes.Models
///
/// Base type for data deletion detection policies.
/// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
- /// The available derived classes include .
+ /// The available derived classes include and .
///
public partial class DataDeletionDetectionPolicy
{
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnParameters.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnParameters.Serialization.cs
new file mode 100644
index 000000000000..61acbb2c8661
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnParameters.Serialization.cs
@@ -0,0 +1,56 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class ExhaustiveKnnParameters : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsDefined(Metric))
+ {
+ if (Metric != null)
+ {
+ writer.WritePropertyName("metric"u8);
+ writer.WriteStringValue(Metric.Value.ToString());
+ }
+ else
+ {
+ writer.WriteNull("metric");
+ }
+ }
+ writer.WriteEndObject();
+ }
+
+ internal static ExhaustiveKnnParameters DeserializeExhaustiveKnnParameters(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional metric = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("metric"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ metric = null;
+ continue;
+ }
+ metric = new VectorSearchAlgorithmMetric(property.Value.GetString());
+ continue;
+ }
+ }
+ return new ExhaustiveKnnParameters(Optional.ToNullable(metric));
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnParameters.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnParameters.cs
new file mode 100644
index 000000000000..4e1900bce361
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnParameters.cs
@@ -0,0 +1,28 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Contains the parameters specific to exhaustive KNN algorithm.
+ public partial class ExhaustiveKnnParameters
+ {
+ /// Initializes a new instance of ExhaustiveKnnParameters.
+ public ExhaustiveKnnParameters()
+ {
+ }
+
+ /// Initializes a new instance of ExhaustiveKnnParameters.
+ /// The similarity metric to use for vector comparisons.
+ internal ExhaustiveKnnParameters(VectorSearchAlgorithmMetric? metric)
+ {
+ Metric = metric;
+ }
+
+ /// The similarity metric to use for vector comparisons.
+ public VectorSearchAlgorithmMetric? Metric { get; set; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnVectorSearchAlgorithmConfiguration.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnVectorSearchAlgorithmConfiguration.Serialization.cs
new file mode 100644
index 000000000000..094b5ad057ec
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnVectorSearchAlgorithmConfiguration.Serialization.cs
@@ -0,0 +1,64 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class ExhaustiveKnnVectorSearchAlgorithmConfiguration : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsDefined(Parameters))
+ {
+ writer.WritePropertyName("exhaustiveKnnParameters"u8);
+ writer.WriteObjectValue(Parameters);
+ }
+ writer.WritePropertyName("name"u8);
+ writer.WriteStringValue(Name);
+ writer.WritePropertyName("kind"u8);
+ writer.WriteStringValue(Kind);
+ writer.WriteEndObject();
+ }
+
+ internal static ExhaustiveKnnVectorSearchAlgorithmConfiguration DeserializeExhaustiveKnnVectorSearchAlgorithmConfiguration(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional exhaustiveKnnParameters = default;
+ string name = default;
+ string kind = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("exhaustiveKnnParameters"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ exhaustiveKnnParameters = ExhaustiveKnnParameters.DeserializeExhaustiveKnnParameters(property.Value);
+ continue;
+ }
+ if (property.NameEquals("name"u8))
+ {
+ name = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("kind"u8))
+ {
+ kind = property.Value.GetString();
+ continue;
+ }
+ }
+ return new ExhaustiveKnnVectorSearchAlgorithmConfiguration(name, kind, exhaustiveKnnParameters.Value);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnVectorSearchAlgorithmConfiguration.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnVectorSearchAlgorithmConfiguration.cs
new file mode 100644
index 000000000000..0e827b11ce1d
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/ExhaustiveKnnVectorSearchAlgorithmConfiguration.cs
@@ -0,0 +1,39 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Contains configuration options specific to the exhaustive KNN algorithm used during querying, which will perform brute-force search across the entire vector index.
+ public partial class ExhaustiveKnnVectorSearchAlgorithmConfiguration : VectorSearchAlgorithmConfiguration
+ {
+ /// Initializes a new instance of ExhaustiveKnnVectorSearchAlgorithmConfiguration.
+ /// The name to associate with this particular configuration.
+ /// is null.
+ public ExhaustiveKnnVectorSearchAlgorithmConfiguration(string name) : base(name)
+ {
+ Argument.AssertNotNull(name, nameof(name));
+
+ Kind = "exhaustiveKnn";
+ }
+
+ /// Initializes a new instance of ExhaustiveKnnVectorSearchAlgorithmConfiguration.
+ /// The name to associate with this particular configuration.
+ /// The name of the kind of algorithm being configured for use with vector search.
+ /// Contains the parameters specific to exhaustive KNN algorithm.
+ internal ExhaustiveKnnVectorSearchAlgorithmConfiguration(string name, string kind, ExhaustiveKnnParameters parameters) : base(name, kind)
+ {
+ Parameters = parameters;
+ Kind = kind ?? "exhaustiveKnn";
+ }
+
+ /// Contains the parameters specific to exhaustive KNN algorithm.
+ public ExhaustiveKnnParameters Parameters { get; set; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/HnswParameters.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/HnswParameters.cs
index 702904af54a5..19c5e59c5b39 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/HnswParameters.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/HnswParameters.cs
@@ -18,7 +18,7 @@ public HnswParameters()
/// Initializes a new instance of HnswParameters.
/// The number of bi-directional links created for every new element during construction. Increasing this parameter value may improve recall and reduce retrieval times for datasets with high intrinsic dimensionality at the expense of increased memory consumption and longer indexing time.
/// The size of the dynamic list containing the nearest neighbors, which is used during index time. Increasing this parameter may improve index quality, at the expense of increased indexing time. At a certain point, increasing this parameter leads to diminishing returns.
- /// The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. Increasing this parameter leads to diminishing returns..
+ /// The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. At a certain point, increasing this parameter leads to diminishing returns.
/// The similarity metric to use for vector comparisons.
internal HnswParameters(int? m, int? efConstruction, int? efSearch, VectorSearchAlgorithmMetric? metric)
{
@@ -32,7 +32,7 @@ internal HnswParameters(int? m, int? efConstruction, int? efSearch, VectorSearch
public int? M { get; set; }
/// The size of the dynamic list containing the nearest neighbors, which is used during index time. Increasing this parameter may improve index quality, at the expense of increased indexing time. At a certain point, increasing this parameter leads to diminishing returns.
public int? EfConstruction { get; set; }
- /// The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. Increasing this parameter leads to diminishing returns..
+ /// The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. At a certain point, increasing this parameter leads to diminishing returns.
public int? EfSearch { get; set; }
/// The similarity metric to use for vector comparisons.
public VectorSearchAlgorithmMetric? Metric { get; set; }
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/HnswVectorSearchAlgorithmConfiguration.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/HnswVectorSearchAlgorithmConfiguration.cs
index 303e3792f15e..b51399646ca8 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/HnswVectorSearchAlgorithmConfiguration.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/HnswVectorSearchAlgorithmConfiguration.cs
@@ -10,7 +10,7 @@
namespace Azure.Search.Documents.Indexes.Models
{
- /// Contains configuration options specific to the hnsw approximate nearest neighbors algorithm used during indexing time.
+ /// Contains configuration options specific to the hnsw approximate nearest neighbors algorithm used during indexing and querying. The hnsw algorithm offers a tunable trade-off between search speed and accuracy.
public partial class HnswVectorSearchAlgorithmConfiguration : VectorSearchAlgorithmConfiguration
{
/// Initializes a new instance of HnswVectorSearchAlgorithmConfiguration.
@@ -25,7 +25,7 @@ public HnswVectorSearchAlgorithmConfiguration(string name) : base(name)
/// Initializes a new instance of HnswVectorSearchAlgorithmConfiguration.
/// The name to associate with this particular configuration.
- /// The name of the kind of algorithm being configured for use with vector search. Only `hnsw` is supported in the current preview.
+ /// The name of the kind of algorithm being configured for use with vector search.
/// Contains the parameters specific to hnsw algorithm.
internal HnswVectorSearchAlgorithmConfiguration(string name, string kind, HnswParameters parameters) : base(name, kind)
{
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/IndexProjectionMode.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/IndexProjectionMode.cs
new file mode 100644
index 000000000000..0d629e30d902
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/IndexProjectionMode.cs
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.ComponentModel;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Defines behavior of the index projections in relation to the rest of the indexer.
+ public readonly partial struct IndexProjectionMode : IEquatable
+ {
+ private readonly string _value;
+
+ /// Initializes a new instance of .
+ /// is null.
+ public IndexProjectionMode(string value)
+ {
+ _value = value ?? throw new ArgumentNullException(nameof(value));
+ }
+
+ private const string SkipIndexingParentDocumentsValue = "skipIndexingParentDocuments";
+ private const string IncludeIndexingParentDocumentsValue = "includeIndexingParentDocuments";
+
+ /// The source document will be skipped from writing into the indexer's target index.
+ public static IndexProjectionMode SkipIndexingParentDocuments { get; } = new IndexProjectionMode(SkipIndexingParentDocumentsValue);
+ /// The source document will be written into the indexer's target index. This is the default pattern.
+ public static IndexProjectionMode IncludeIndexingParentDocuments { get; } = new IndexProjectionMode(IncludeIndexingParentDocumentsValue);
+ /// Determines if two values are the same.
+ public static bool operator ==(IndexProjectionMode left, IndexProjectionMode right) => left.Equals(right);
+ /// Determines if two values are not the same.
+ public static bool operator !=(IndexProjectionMode left, IndexProjectionMode right) => !left.Equals(right);
+ /// Converts a string to a .
+ public static implicit operator IndexProjectionMode(string value) => new IndexProjectionMode(value);
+
+ ///
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public override bool Equals(object obj) => obj is IndexProjectionMode other && Equals(other);
+ ///
+ public bool Equals(IndexProjectionMode other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase);
+
+ ///
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public override int GetHashCode() => _value?.GetHashCode() ?? 0;
+ ///
+ public override string ToString() => _value;
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/KnowledgeStore.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/KnowledgeStore.Serialization.cs
index de33627ca230..156f09ccef9f 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/KnowledgeStore.Serialization.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/KnowledgeStore.Serialization.cs
@@ -37,6 +37,11 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
writer.WriteNull("identity");
}
}
+ if (Optional.IsDefined(Parameters))
+ {
+ writer.WritePropertyName("parameters"u8);
+ writer.WriteObjectValue(Parameters);
+ }
writer.WriteEndObject();
}
@@ -49,6 +54,7 @@ internal static KnowledgeStore DeserializeKnowledgeStore(JsonElement element)
string storageConnectionString = default;
IList projections = default;
Optional identity = default;
+ Optional parameters = default;
foreach (var property in element.EnumerateObject())
{
if (property.NameEquals("storageConnectionString"u8))
@@ -76,8 +82,17 @@ internal static KnowledgeStore DeserializeKnowledgeStore(JsonElement element)
identity = SearchIndexerDataIdentity.DeserializeSearchIndexerDataIdentity(property.Value);
continue;
}
+ if (property.NameEquals("parameters"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ parameters = SearchIndexerKnowledgeStoreParameters.DeserializeSearchIndexerKnowledgeStoreParameters(property.Value);
+ continue;
+ }
}
- return new KnowledgeStore(storageConnectionString, projections, identity.Value);
+ return new KnowledgeStore(storageConnectionString, projections, identity.Value, parameters.Value);
}
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/KnowledgeStore.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/KnowledgeStore.cs
index 56784f3e80f3..80cbfc974122 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/KnowledgeStore.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/KnowledgeStore.cs
@@ -36,11 +36,13 @@ public KnowledgeStore(string storageConnectionString, IEnumerable is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
/// The available derived classes include and .
///
- internal KnowledgeStore(string storageConnectionString, IList projections, SearchIndexerDataIdentity identity)
+ /// A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.
+ internal KnowledgeStore(string storageConnectionString, IList projections, SearchIndexerDataIdentity identity, SearchIndexerKnowledgeStoreParameters parameters)
{
StorageConnectionString = storageConnectionString;
Projections = projections;
Identity = identity;
+ Parameters = parameters;
}
/// The connection string to the storage account projections will be stored in.
@@ -53,5 +55,7 @@ internal KnowledgeStore(string storageConnectionString, IList and .
///
public SearchIndexerDataIdentity Identity { get; set; }
+ /// A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.
+ public SearchIndexerKnowledgeStoreParameters Parameters { get; set; }
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/NativeBlobSoftDeleteDeletionDetectionPolicy.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/NativeBlobSoftDeleteDeletionDetectionPolicy.Serialization.cs
new file mode 100644
index 000000000000..3768cd2ef9a2
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/NativeBlobSoftDeleteDeletionDetectionPolicy.Serialization.cs
@@ -0,0 +1,41 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class NativeBlobSoftDeleteDeletionDetectionPolicy : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ writer.WritePropertyName("@odata.type"u8);
+ writer.WriteStringValue(ODataType);
+ writer.WriteEndObject();
+ }
+
+ internal static NativeBlobSoftDeleteDeletionDetectionPolicy DeserializeNativeBlobSoftDeleteDeletionDetectionPolicy(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ string odataType = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("@odata.type"u8))
+ {
+ odataType = property.Value.GetString();
+ continue;
+ }
+ }
+ return new NativeBlobSoftDeleteDeletionDetectionPolicy(odataType);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/NativeBlobSoftDeleteDeletionDetectionPolicy.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/NativeBlobSoftDeleteDeletionDetectionPolicy.cs
new file mode 100644
index 000000000000..d55005cb6907
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/NativeBlobSoftDeleteDeletionDetectionPolicy.cs
@@ -0,0 +1,26 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Defines a data deletion detection policy utilizing Azure Blob Storage's native soft delete feature for deletion detection.
+ public partial class NativeBlobSoftDeleteDeletionDetectionPolicy : DataDeletionDetectionPolicy
+ {
+ /// Initializes a new instance of NativeBlobSoftDeleteDeletionDetectionPolicy.
+ public NativeBlobSoftDeleteDeletionDetectionPolicy()
+ {
+ ODataType = "#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy";
+ }
+
+ /// Initializes a new instance of NativeBlobSoftDeleteDeletionDetectionPolicy.
+ /// Identifies the concrete type of the data deletion detection policy.
+ internal NativeBlobSoftDeleteDeletionDetectionPolicy(string oDataType) : base(oDataType)
+ {
+ ODataType = oDataType ?? "#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy";
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/RawVector.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/RawVector.Serialization.cs
new file mode 100644
index 000000000000..b388e3800ec9
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/RawVector.Serialization.cs
@@ -0,0 +1,108 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Collections.Generic;
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Models
+{
+ public partial class RawVector : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsCollectionDefined(Vector))
+ {
+ writer.WritePropertyName("vector"u8);
+ writer.WriteStartArray();
+ foreach (var item in Vector)
+ {
+ writer.WriteNumberValue(item);
+ }
+ writer.WriteEndArray();
+ }
+ writer.WritePropertyName("kind"u8);
+ writer.WriteStringValue(Kind);
+ if (Optional.IsDefined(KNearestNeighborsCount))
+ {
+ writer.WritePropertyName("k"u8);
+ writer.WriteNumberValue(KNearestNeighborsCount.Value);
+ }
+ if (Optional.IsDefined(FieldsRaw))
+ {
+ writer.WritePropertyName("fields"u8);
+ writer.WriteStringValue(FieldsRaw);
+ }
+ if (Optional.IsDefined(Exhaustive))
+ {
+ writer.WritePropertyName("exhaustive"u8);
+ writer.WriteBooleanValue(Exhaustive.Value);
+ }
+ writer.WriteEndObject();
+ }
+
+ internal static RawVector DeserializeRawVector(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional> vector = default;
+ string kind = default;
+ Optional k = default;
+ Optional fields = default;
+ Optional exhaustive = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("vector"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ List array = new List();
+ foreach (var item in property.Value.EnumerateArray())
+ {
+ array.Add(item.GetSingle());
+ }
+ vector = array;
+ continue;
+ }
+ if (property.NameEquals("kind"u8))
+ {
+ kind = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("k"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ k = property.Value.GetInt32();
+ continue;
+ }
+ if (property.NameEquals("fields"u8))
+ {
+ fields = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("exhaustive"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ exhaustive = property.Value.GetBoolean();
+ continue;
+ }
+ }
+ return new RawVector(kind, Optional.ToNullable(k), fields.Value, Optional.ToNullable(exhaustive), Optional.ToList(vector));
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/RawVector.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/RawVector.cs
new file mode 100644
index 000000000000..abd3eb11d189
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/RawVector.cs
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Collections.Generic;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Models
+{
+ /// The query parameters to use for vector search when a raw vector value is provided.
+ public partial class RawVector : SearchQueryVector
+ {
+ /// Initializes a new instance of RawVector.
+ public RawVector()
+ {
+ Vector = new ChangeTrackingList();
+ Kind = "vector";
+ }
+
+ /// Initializes a new instance of RawVector.
+ /// The name of the kind of vector query being performed.
+ /// Number of nearest neighbors to return as top hits.
+ /// Vector Fields of type Collection(Edm.Single) to be included in the vector searched.
+ /// When true, triggers an exhaustive k-nearest neighbor search across all vectors within the vector index. Useful for scenarios where exact matches are critical, such as determining ground truth values.
+ /// The vector representation of a search query.
+ internal RawVector(string kind, int? kNearestNeighborsCount, string fieldsRaw, bool? exhaustive, IList vector) : base(kind, kNearestNeighborsCount, fieldsRaw, exhaustive)
+ {
+ Vector = vector;
+ Kind = kind ?? "vector";
+ }
+
+ /// The vector representation of a search query.
+ public IList Vector { get; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchField.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchField.Serialization.cs
index 7ef9362205de..5b15c274d92f 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchField.Serialization.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchField.Serialization.cs
@@ -110,16 +110,16 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
writer.WriteNull("dimensions");
}
}
- if (Optional.IsDefined(VectorSearchConfiguration))
+ if (Optional.IsDefined(VectorSearchProfile))
{
- if (VectorSearchConfiguration != null)
+ if (VectorSearchProfile != null)
{
- writer.WritePropertyName("vectorSearchConfiguration"u8);
- writer.WriteStringValue(VectorSearchConfiguration);
+ writer.WritePropertyName("vectorSearchProfile"u8);
+ writer.WriteStringValue(VectorSearchProfile);
}
else
{
- writer.WriteNull("vectorSearchConfiguration");
+ writer.WriteNull("vectorSearchProfile");
}
}
if (Optional.IsCollectionDefined(SynonymMapNames))
@@ -164,7 +164,7 @@ internal static SearchField DeserializeSearchField(JsonElement element)
Optional indexAnalyzer = default;
Optional normalizer = default;
Optional dimensions = default;
- Optional vectorSearchConfiguration = default;
+ Optional vectorSearchProfile = default;
Optional> synonymMaps = default;
Optional> fields = default;
foreach (var property in element.EnumerateObject())
@@ -283,14 +283,14 @@ internal static SearchField DeserializeSearchField(JsonElement element)
dimensions = property.Value.GetInt32();
continue;
}
- if (property.NameEquals("vectorSearchConfiguration"u8))
+ if (property.NameEquals("vectorSearchProfile"u8))
{
if (property.Value.ValueKind == JsonValueKind.Null)
{
- vectorSearchConfiguration = null;
+ vectorSearchProfile = null;
continue;
}
- vectorSearchConfiguration = property.Value.GetString();
+ vectorSearchProfile = property.Value.GetString();
continue;
}
if (property.NameEquals("synonymMaps"u8))
@@ -322,7 +322,7 @@ internal static SearchField DeserializeSearchField(JsonElement element)
continue;
}
}
- return new SearchField(name, type, Optional.ToNullable(key), Optional.ToNullable(retrievable), Optional.ToNullable(searchable), Optional.ToNullable(filterable), Optional.ToNullable(sortable), Optional.ToNullable(facetable), Optional.ToNullable(analyzer), Optional.ToNullable(searchAnalyzer), Optional.ToNullable(indexAnalyzer), Optional.ToNullable(normalizer), Optional.ToNullable(dimensions), vectorSearchConfiguration.Value, Optional.ToList(synonymMaps), Optional.ToList(fields));
+ return new SearchField(name, type, Optional.ToNullable(key), Optional.ToNullable(retrievable), Optional.ToNullable(searchable), Optional.ToNullable(filterable), Optional.ToNullable(sortable), Optional.ToNullable(facetable), Optional.ToNullable(analyzer), Optional.ToNullable(searchAnalyzer), Optional.ToNullable(indexAnalyzer), Optional.ToNullable(normalizer), Optional.ToNullable(dimensions), vectorSearchProfile.Value, Optional.ToList(synonymMaps), Optional.ToList(fields));
}
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchField.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchField.cs
index 4e06f03edbc3..ca0d379fad7b 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchField.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchField.cs
@@ -28,10 +28,10 @@ public partial class SearchField
/// The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.
/// The name of the normalizer to use for the field. This option can be used only with fields with filterable, sortable, or facetable enabled. Once the normalizer is chosen, it cannot be changed for the field. Must be null for complex fields.
/// The dimensionality of the vector field.
- /// The name of the vector search algorithm configuration that specifies the algorithm and optional parameters for searching the vector field.
+ /// The name of the vector search profile that specifies the algorithm and vectorizer to use when searching the vector field.
/// A list of the names of synonym maps to associate with this field. This option can be used only with searchable fields. Currently only one synonym map per field is supported. Assigning a synonym map to a field ensures that query terms targeting that field are expanded at query-time using the rules in the synonym map. This attribute can be changed on existing fields. Must be null or an empty collection for complex fields.
/// A list of sub-fields if this is a field of type Edm.ComplexType or Collection(Edm.ComplexType). Must be null or empty for simple fields.
- internal SearchField(string name, SearchFieldDataType type, bool? isKey, bool? isRetrievable, bool? isSearchable, bool? isFilterable, bool? isSortable, bool? isFacetable, LexicalAnalyzerName? analyzerName, LexicalAnalyzerName? searchAnalyzerName, LexicalAnalyzerName? indexAnalyzerName, LexicalNormalizerName? normalizerName, int? vectorSearchDimensions, string vectorSearchConfiguration, IList synonymMapNames, IList fields)
+ internal SearchField(string name, SearchFieldDataType type, bool? isKey, bool? isRetrievable, bool? isSearchable, bool? isFilterable, bool? isSortable, bool? isFacetable, LexicalAnalyzerName? analyzerName, LexicalAnalyzerName? searchAnalyzerName, LexicalAnalyzerName? indexAnalyzerName, LexicalNormalizerName? normalizerName, int? vectorSearchDimensions, string vectorSearchProfile, IList synonymMapNames, IList fields)
{
Name = name;
Type = type;
@@ -46,13 +46,13 @@ internal SearchField(string name, SearchFieldDataType type, bool? isKey, bool? i
IndexAnalyzerName = indexAnalyzerName;
NormalizerName = normalizerName;
VectorSearchDimensions = vectorSearchDimensions;
- VectorSearchConfiguration = vectorSearchConfiguration;
+ VectorSearchProfile = vectorSearchProfile;
SynonymMapNames = synonymMapNames;
Fields = fields;
}
/// The dimensionality of the vector field.
public int? VectorSearchDimensions { get; set; }
- /// The name of the vector search algorithm configuration that specifies the algorithm and optional parameters for searching the vector field.
- public string VectorSearchConfiguration { get; set; }
+ /// The name of the vector search profile that specifies the algorithm and vectorizer to use when searching the vector field.
+ public string VectorSearchProfile { get; set; }
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerDataSourceConnection.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerDataSourceConnection.cs
index 2171e2bd1e40..b9d9fd6fed60 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerDataSourceConnection.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerDataSourceConnection.cs
@@ -32,7 +32,7 @@ public partial class SearchIndexerDataSourceConnection
///
/// The data deletion detection policy for the datasource.
/// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
- /// The available derived classes include .
+ /// The available derived classes include and .
///
/// The ETag of the data source.
/// A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your datasource definition when you want full assurance that no one, not even Microsoft, can decrypt your data source definition in Azure Cognitive Search. Once you have encrypted your data source definition, it will always remain encrypted. Azure Cognitive Search will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your datasource definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.
@@ -73,7 +73,7 @@ internal SearchIndexerDataSourceConnection(string name, string description, Sear
///
/// The data deletion detection policy for the datasource.
/// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
- /// The available derived classes include .
+ /// The available derived classes include and .
///
public DataDeletionDetectionPolicy DataDeletionDetectionPolicy { get; set; }
/// A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your datasource definition when you want full assurance that no one, not even Microsoft, can decrypt your data source definition in Azure Cognitive Search. Once you have encrypted your data source definition, it will always remain encrypted. Azure Cognitive Search will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your datasource definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionSelector.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionSelector.Serialization.cs
new file mode 100644
index 000000000000..138f03cbdd15
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionSelector.Serialization.cs
@@ -0,0 +1,76 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Collections.Generic;
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class SearchIndexerIndexProjectionSelector : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ writer.WritePropertyName("targetIndexName"u8);
+ writer.WriteStringValue(TargetIndexName);
+ writer.WritePropertyName("parentKeyFieldName"u8);
+ writer.WriteStringValue(ParentKeyFieldName);
+ writer.WritePropertyName("sourceContext"u8);
+ writer.WriteStringValue(SourceContext);
+ writer.WritePropertyName("mappings"u8);
+ writer.WriteStartArray();
+ foreach (var item in Mappings)
+ {
+ writer.WriteObjectValue(item);
+ }
+ writer.WriteEndArray();
+ writer.WriteEndObject();
+ }
+
+ internal static SearchIndexerIndexProjectionSelector DeserializeSearchIndexerIndexProjectionSelector(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ string targetIndexName = default;
+ string parentKeyFieldName = default;
+ string sourceContext = default;
+ IList mappings = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("targetIndexName"u8))
+ {
+ targetIndexName = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("parentKeyFieldName"u8))
+ {
+ parentKeyFieldName = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("sourceContext"u8))
+ {
+ sourceContext = property.Value.GetString();
+ continue;
+ }
+ if (property.NameEquals("mappings"u8))
+ {
+ List array = new List();
+ foreach (var item in property.Value.EnumerateArray())
+ {
+ array.Add(InputFieldMappingEntry.DeserializeInputFieldMappingEntry(item));
+ }
+ mappings = array;
+ continue;
+ }
+ }
+ return new SearchIndexerIndexProjectionSelector(targetIndexName, parentKeyFieldName, sourceContext, mappings);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionSelector.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionSelector.cs
new file mode 100644
index 000000000000..7b1cb29d0823
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionSelector.cs
@@ -0,0 +1,59 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Description for what data to store in the designated search index.
+ public partial class SearchIndexerIndexProjectionSelector
+ {
+ /// Initializes a new instance of SearchIndexerIndexProjectionSelector.
+ /// Name of the search index to project to. Must have a key field with the 'keyword' analyzer set.
+ /// Name of the field in the search index to map the parent document's key value to. Must be a string field that is filterable and not the key field.
+ /// Source context for the projections. Represents the cardinality at which the document will be split into multiple sub documents.
+ /// Mappings for the projection, or which source should be mapped to which field in the target index.
+ /// , , or is null.
+ public SearchIndexerIndexProjectionSelector(string targetIndexName, string parentKeyFieldName, string sourceContext, IEnumerable mappings)
+ {
+ Argument.AssertNotNull(targetIndexName, nameof(targetIndexName));
+ Argument.AssertNotNull(parentKeyFieldName, nameof(parentKeyFieldName));
+ Argument.AssertNotNull(sourceContext, nameof(sourceContext));
+ Argument.AssertNotNull(mappings, nameof(mappings));
+
+ TargetIndexName = targetIndexName;
+ ParentKeyFieldName = parentKeyFieldName;
+ SourceContext = sourceContext;
+ Mappings = mappings.ToList();
+ }
+
+ /// Initializes a new instance of SearchIndexerIndexProjectionSelector.
+ /// Name of the search index to project to. Must have a key field with the 'keyword' analyzer set.
+ /// Name of the field in the search index to map the parent document's key value to. Must be a string field that is filterable and not the key field.
+ /// Source context for the projections. Represents the cardinality at which the document will be split into multiple sub documents.
+ /// Mappings for the projection, or which source should be mapped to which field in the target index.
+ internal SearchIndexerIndexProjectionSelector(string targetIndexName, string parentKeyFieldName, string sourceContext, IList mappings)
+ {
+ TargetIndexName = targetIndexName;
+ ParentKeyFieldName = parentKeyFieldName;
+ SourceContext = sourceContext;
+ Mappings = mappings;
+ }
+
+ /// Name of the search index to project to. Must have a key field with the 'keyword' analyzer set.
+ public string TargetIndexName { get; set; }
+ /// Name of the field in the search index to map the parent document's key value to. Must be a string field that is filterable and not the key field.
+ public string ParentKeyFieldName { get; set; }
+ /// Source context for the projections. Represents the cardinality at which the document will be split into multiple sub documents.
+ public string SourceContext { get; set; }
+ /// Mappings for the projection, or which source should be mapped to which field in the target index.
+ public IList Mappings { get; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjections.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjections.Serialization.cs
new file mode 100644
index 000000000000..400e324069d5
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjections.Serialization.cs
@@ -0,0 +1,67 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Collections.Generic;
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class SearchIndexerIndexProjections : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ writer.WritePropertyName("selectors"u8);
+ writer.WriteStartArray();
+ foreach (var item in Selectors)
+ {
+ writer.WriteObjectValue(item);
+ }
+ writer.WriteEndArray();
+ if (Optional.IsDefined(Parameters))
+ {
+ writer.WritePropertyName("parameters"u8);
+ writer.WriteObjectValue(Parameters);
+ }
+ writer.WriteEndObject();
+ }
+
+ internal static SearchIndexerIndexProjections DeserializeSearchIndexerIndexProjections(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ IList selectors = default;
+ Optional parameters = default;
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("selectors"u8))
+ {
+ List array = new List();
+ foreach (var item in property.Value.EnumerateArray())
+ {
+ array.Add(SearchIndexerIndexProjectionSelector.DeserializeSearchIndexerIndexProjectionSelector(item));
+ }
+ selectors = array;
+ continue;
+ }
+ if (property.NameEquals("parameters"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ parameters = SearchIndexerIndexProjectionsParameters.DeserializeSearchIndexerIndexProjectionsParameters(property.Value);
+ continue;
+ }
+ }
+ return new SearchIndexerIndexProjections(selectors, parameters.Value);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjections.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjections.cs
new file mode 100644
index 000000000000..ef20ea9ffb7b
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjections.cs
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// Definition of additional projections to secondary search indexes.
+ public partial class SearchIndexerIndexProjections
+ {
+ /// Initializes a new instance of SearchIndexerIndexProjections.
+ /// A list of projections to be performed to secondary search indexes.
+ /// is null.
+ public SearchIndexerIndexProjections(IEnumerable selectors)
+ {
+ Argument.AssertNotNull(selectors, nameof(selectors));
+
+ Selectors = selectors.ToList();
+ }
+
+ /// Initializes a new instance of SearchIndexerIndexProjections.
+ /// A list of projections to be performed to secondary search indexes.
+ /// A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.
+ internal SearchIndexerIndexProjections(IList selectors, SearchIndexerIndexProjectionsParameters parameters)
+ {
+ Selectors = selectors;
+ Parameters = parameters;
+ }
+
+ /// A list of projections to be performed to secondary search indexes.
+ public IList Selectors { get; }
+ /// A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.
+ public SearchIndexerIndexProjectionsParameters Parameters { get; set; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionsParameters.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionsParameters.Serialization.cs
new file mode 100644
index 000000000000..5f2b84cd69a3
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionsParameters.Serialization.cs
@@ -0,0 +1,58 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Collections.Generic;
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class SearchIndexerIndexProjectionsParameters : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsDefined(ProjectionMode))
+ {
+ writer.WritePropertyName("projectionMode"u8);
+ writer.WriteStringValue(ProjectionMode.Value.ToString());
+ }
+ foreach (var item in AdditionalProperties)
+ {
+ writer.WritePropertyName(item.Key);
+ writer.WriteObjectValue(item.Value);
+ }
+ writer.WriteEndObject();
+ }
+
+ internal static SearchIndexerIndexProjectionsParameters DeserializeSearchIndexerIndexProjectionsParameters(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional projectionMode = default;
+ IDictionary additionalProperties = default;
+ Dictionary additionalPropertiesDictionary = new Dictionary();
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("projectionMode"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ projectionMode = new IndexProjectionMode(property.Value.GetString());
+ continue;
+ }
+ additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject());
+ }
+ additionalProperties = additionalPropertiesDictionary;
+ return new SearchIndexerIndexProjectionsParameters(Optional.ToNullable(projectionMode), additionalProperties);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionsParameters.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionsParameters.cs
new file mode 100644
index 000000000000..f2cbd9d81dc8
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerIndexProjectionsParameters.cs
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Collections.Generic;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.
+ public partial class SearchIndexerIndexProjectionsParameters
+ {
+ /// Initializes a new instance of SearchIndexerIndexProjectionsParameters.
+ public SearchIndexerIndexProjectionsParameters()
+ {
+ AdditionalProperties = new ChangeTrackingDictionary();
+ }
+
+ /// Initializes a new instance of SearchIndexerIndexProjectionsParameters.
+ /// Defines behavior of the index projections in relation to the rest of the indexer.
+ /// Additional Properties.
+ internal SearchIndexerIndexProjectionsParameters(IndexProjectionMode? projectionMode, IDictionary additionalProperties)
+ {
+ ProjectionMode = projectionMode;
+ AdditionalProperties = additionalProperties;
+ }
+
+ /// Defines behavior of the index projections in relation to the rest of the indexer.
+ public IndexProjectionMode? ProjectionMode { get; set; }
+ /// Additional Properties.
+ public IDictionary AdditionalProperties { get; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerKnowledgeStoreParameters.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerKnowledgeStoreParameters.Serialization.cs
new file mode 100644
index 000000000000..0cca32358fc3
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerKnowledgeStoreParameters.Serialization.cs
@@ -0,0 +1,58 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Collections.Generic;
+using System.Text.Json;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ public partial class SearchIndexerKnowledgeStoreParameters : IUtf8JsonSerializable
+ {
+ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
+ {
+ writer.WriteStartObject();
+ if (Optional.IsDefined(SynthesizeGeneratedKeyName))
+ {
+ writer.WritePropertyName("synthesizeGeneratedKeyName"u8);
+ writer.WriteBooleanValue(SynthesizeGeneratedKeyName.Value);
+ }
+ foreach (var item in AdditionalProperties)
+ {
+ writer.WritePropertyName(item.Key);
+ writer.WriteObjectValue(item.Value);
+ }
+ writer.WriteEndObject();
+ }
+
+ internal static SearchIndexerKnowledgeStoreParameters DeserializeSearchIndexerKnowledgeStoreParameters(JsonElement element)
+ {
+ if (element.ValueKind == JsonValueKind.Null)
+ {
+ return null;
+ }
+ Optional synthesizeGeneratedKeyName = default;
+ IDictionary additionalProperties = default;
+ Dictionary additionalPropertiesDictionary = new Dictionary();
+ foreach (var property in element.EnumerateObject())
+ {
+ if (property.NameEquals("synthesizeGeneratedKeyName"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ synthesizeGeneratedKeyName = property.Value.GetBoolean();
+ continue;
+ }
+ additionalPropertiesDictionary.Add(property.Name, property.Value.GetObject());
+ }
+ additionalProperties = additionalPropertiesDictionary;
+ return new SearchIndexerKnowledgeStoreParameters(Optional.ToNullable(synthesizeGeneratedKeyName), additionalProperties);
+ }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerKnowledgeStoreParameters.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerKnowledgeStoreParameters.cs
new file mode 100644
index 000000000000..f78a793a000f
--- /dev/null
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerKnowledgeStoreParameters.cs
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+
+//
+
+#nullable disable
+
+using System.Collections.Generic;
+using Azure.Core;
+
+namespace Azure.Search.Documents.Indexes.Models
+{
+ /// A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.
+ public partial class SearchIndexerKnowledgeStoreParameters
+ {
+ /// Initializes a new instance of SearchIndexerKnowledgeStoreParameters.
+ public SearchIndexerKnowledgeStoreParameters()
+ {
+ AdditionalProperties = new ChangeTrackingDictionary();
+ }
+
+ /// Initializes a new instance of SearchIndexerKnowledgeStoreParameters.
+ /// Whether or not projections should synthesize a generated key name if one isn't already present.
+ /// Additional Properties.
+ internal SearchIndexerKnowledgeStoreParameters(bool? synthesizeGeneratedKeyName, IDictionary additionalProperties)
+ {
+ SynthesizeGeneratedKeyName = synthesizeGeneratedKeyName;
+ AdditionalProperties = additionalProperties;
+ }
+
+ /// Whether or not projections should synthesize a generated key name if one isn't already present.
+ public bool? SynthesizeGeneratedKeyName { get; set; }
+ /// Additional Properties.
+ public IDictionary AdditionalProperties { get; }
+ }
+}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkill.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkill.Serialization.cs
index 1409c4a1d122..fc06d8f858a0 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkill.Serialization.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkill.Serialization.cs
@@ -62,6 +62,7 @@ internal static SearchIndexerSkill DeserializeSearchIndexerSkill(JsonElement ele
{
case "#Microsoft.Skills.Custom.AmlSkill": return AzureMachineLearningSkill.DeserializeAzureMachineLearningSkill(element);
case "#Microsoft.Skills.Custom.WebApiSkill": return WebApiSkill.DeserializeWebApiSkill(element);
+ case "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill": return AzureOpenAIEmbeddingSkill.DeserializeAzureOpenAIEmbeddingSkill(element);
case "#Microsoft.Skills.Text.CustomEntityLookupSkill": return CustomEntityLookupSkill.DeserializeCustomEntityLookupSkill(element);
case "#Microsoft.Skills.Text.EntityRecognitionSkill": return EntityRecognitionSkill.DeserializeEntityRecognitionSkill(element);
case "#Microsoft.Skills.Text.KeyPhraseExtractionSkill": return KeyPhraseExtractionSkill.DeserializeKeyPhraseExtractionSkill(element);
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkill.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkill.cs
index 74a4d6df0e7d..fda5442057a1 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkill.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkill.cs
@@ -15,7 +15,7 @@ namespace Azure.Search.Documents.Indexes.Models
///
/// Base type for skills.
/// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
- /// The available derived classes include , , , , , , , , , , , , , , , , , and .
+ /// The available derived classes include , , , , , , , , , , , , , , , , , , and .
///
public partial class SearchIndexerSkill
{
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkillset.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkillset.Serialization.cs
index 4f7049bb9a3b..0fab9b6b4b48 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkillset.Serialization.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkillset.Serialization.cs
@@ -40,6 +40,11 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
writer.WritePropertyName("knowledgeStore"u8);
writer.WriteObjectValue(KnowledgeStore);
}
+ if (Optional.IsDefined(IndexProjections))
+ {
+ writer.WritePropertyName("indexProjections"u8);
+ writer.WriteObjectValue(IndexProjections);
+ }
if (Optional.IsDefined(_etag))
{
writer.WritePropertyName("@odata.etag"u8);
@@ -71,6 +76,7 @@ internal static SearchIndexerSkillset DeserializeSearchIndexerSkillset(JsonEleme
IList skills = default;
Optional cognitiveServices = default;
Optional knowledgeStore = default;
+ Optional indexProjections = default;
Optional odataEtag = default;
Optional encryptionKey = default;
foreach (var property in element.EnumerateObject())
@@ -113,6 +119,15 @@ internal static SearchIndexerSkillset DeserializeSearchIndexerSkillset(JsonEleme
knowledgeStore = KnowledgeStore.DeserializeKnowledgeStore(property.Value);
continue;
}
+ if (property.NameEquals("indexProjections"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ indexProjections = SearchIndexerIndexProjections.DeserializeSearchIndexerIndexProjections(property.Value);
+ continue;
+ }
if (property.NameEquals("@odata.etag"u8))
{
odataEtag = property.Value.GetString();
@@ -129,7 +144,7 @@ internal static SearchIndexerSkillset DeserializeSearchIndexerSkillset(JsonEleme
continue;
}
}
- return new SearchIndexerSkillset(name, description.Value, skills, cognitiveServices.Value, knowledgeStore.Value, odataEtag.Value, encryptionKey.Value);
+ return new SearchIndexerSkillset(name, description.Value, skills, cognitiveServices.Value, knowledgeStore.Value, indexProjections.Value, odataEtag.Value, encryptionKey.Value);
}
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkillset.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkillset.cs
index a4ac3cbb702a..9210f47f8096 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkillset.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchIndexerSkillset.cs
@@ -20,7 +20,7 @@ public partial class SearchIndexerSkillset
///
/// A list of skills in the skillset.
/// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
- /// The available derived classes include , , , , , , , , , , , , , , , , , and .
+ /// The available derived classes include , , , , , , , , , , , , , , , , , , and .
///
/// or is null.
public SearchIndexerSkillset(string name, IEnumerable skills)
@@ -38,7 +38,7 @@ public SearchIndexerSkillset(string name, IEnumerable skills
///
/// A list of skills in the skillset.
/// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
- /// The available derived classes include , , , , , , , , , , , , , , , , , and .
+ /// The available derived classes include , , , , , , , , , , , , , , , , , , and .
///
///
/// Details about cognitive services to be used when running skills.
@@ -46,15 +46,17 @@ public SearchIndexerSkillset(string name, IEnumerable skills
/// The available derived classes include and .
///
/// Definition of additional projections to azure blob, table, or files, of enriched data.
+ /// Definition of additional projections to secondary search index(es).
/// The ETag of the skillset.
/// A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your skillset definition when you want full assurance that no one, not even Microsoft, can decrypt your skillset definition in Azure Cognitive Search. Once you have encrypted your skillset definition, it will always remain encrypted. Azure Cognitive Search will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your skillset definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.
- internal SearchIndexerSkillset(string name, string description, IList skills, CognitiveServicesAccount cognitiveServicesAccount, KnowledgeStore knowledgeStore, string etag, SearchResourceEncryptionKey encryptionKey)
+ internal SearchIndexerSkillset(string name, string description, IList skills, CognitiveServicesAccount cognitiveServicesAccount, KnowledgeStore knowledgeStore, SearchIndexerIndexProjections indexProjections, string etag, SearchResourceEncryptionKey encryptionKey)
{
Name = name;
Description = description;
Skills = skills;
CognitiveServicesAccount = cognitiveServicesAccount;
KnowledgeStore = knowledgeStore;
+ IndexProjections = indexProjections;
_etag = etag;
EncryptionKey = encryptionKey;
}
@@ -71,6 +73,8 @@ internal SearchIndexerSkillset(string name, string description, IList Definition of additional projections to azure blob, table, or files, of enriched data.
public KnowledgeStore KnowledgeStore { get; set; }
+ /// Definition of additional projections to secondary search index(es).
+ public SearchIndexerIndexProjections IndexProjections { get; set; }
/// A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your skillset definition when you want full assurance that no one, not even Microsoft, can decrypt your skillset definition in Azure Cognitive Search. Once you have encrypted your skillset definition, it will always remain encrypted. Azure Cognitive Search will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your skillset definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.
public SearchResourceEncryptionKey EncryptionKey { get; set; }
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchOptions.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchOptions.Serialization.cs
index 055b4ae7ef19..5d9d07869e9f 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchOptions.Serialization.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchOptions.Serialization.cs
@@ -92,6 +92,11 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
writer.WritePropertyName("scoringProfile"u8);
writer.WriteStringValue(ScoringProfile);
}
+ if (Optional.IsDefined(SemanticQuery))
+ {
+ writer.WritePropertyName("semanticQuery"u8);
+ writer.WriteStringValue(SemanticQuery);
+ }
if (Optional.IsDefined(SemanticConfigurationName))
{
writer.WritePropertyName("semanticConfiguration"u8);
@@ -184,6 +189,11 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
}
writer.WriteEndArray();
}
+ if (Optional.IsDefined(VectorFilterMode))
+ {
+ writer.WritePropertyName("vectorFilterMode"u8);
+ writer.WriteStringValue(VectorFilterMode.Value.ToString());
+ }
writer.WriteEndObject();
}
@@ -206,6 +216,7 @@ internal static SearchOptions DeserializeSearchOptions(JsonElement element)
Optional sessionId = default;
Optional> scoringParameters = default;
Optional scoringProfile = default;
+ Optional semanticQuery = default;
Optional semanticConfiguration = default;
Optional semanticErrorHandling = default;
Optional semanticMaxWaitInMilliseconds = default;
@@ -222,6 +233,7 @@ internal static SearchOptions DeserializeSearchOptions(JsonElement element)
Optional captions = default;
Optional semanticFields = default;
Optional> vectors = default;
+ Optional vectorFilterMode = default;
foreach (var property in element.EnumerateObject())
{
if (property.NameEquals("count"u8))
@@ -323,6 +335,11 @@ internal static SearchOptions DeserializeSearchOptions(JsonElement element)
scoringProfile = property.Value.GetString();
continue;
}
+ if (property.NameEquals("semanticQuery"u8))
+ {
+ semanticQuery = property.Value.GetString();
+ continue;
+ }
if (property.NameEquals("semanticConfiguration"u8))
{
semanticConfiguration = property.Value.GetString();
@@ -445,8 +462,17 @@ internal static SearchOptions DeserializeSearchOptions(JsonElement element)
vectors = array;
continue;
}
+ if (property.NameEquals("vectorFilterMode"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ continue;
+ }
+ vectorFilterMode = new VectorFilterMode(property.Value.GetString());
+ continue;
+ }
}
- return new SearchOptions(Optional.ToNullable(count), Optional.ToList(facets), filter.Value, highlight.Value, highlightPostTag.Value, highlightPreTag.Value, Optional.ToNullable(minimumCoverage), orderby.Value, Optional.ToNullable(queryType), Optional.ToNullable(scoringStatistics), sessionId.Value, Optional.ToList(scoringParameters), scoringProfile.Value, semanticConfiguration.Value, Optional.ToNullable(semanticErrorHandling), Optional.ToNullable(semanticMaxWaitInMilliseconds), Optional.ToNullable(debug), search.Value, searchFields.Value, Optional.ToNullable(searchMode), Optional.ToNullable(queryLanguage), Optional.ToNullable(speller), answers.Value, select.Value, Optional.ToNullable(skip), Optional.ToNullable(top), captions.Value, semanticFields.Value, Optional.ToList(vectors));
+ return new SearchOptions(Optional.ToNullable(count), Optional.ToList(facets), filter.Value, highlight.Value, highlightPostTag.Value, highlightPreTag.Value, Optional.ToNullable(minimumCoverage), orderby.Value, Optional.ToNullable(queryType), Optional.ToNullable(scoringStatistics), sessionId.Value, Optional.ToList(scoringParameters), scoringProfile.Value, semanticQuery.Value, semanticConfiguration.Value, Optional.ToNullable(semanticErrorHandling), Optional.ToNullable(semanticMaxWaitInMilliseconds), Optional.ToNullable(debug), search.Value, searchFields.Value, Optional.ToNullable(searchMode), Optional.ToNullable(queryLanguage), Optional.ToNullable(speller), answers.Value, select.Value, Optional.ToNullable(skip), Optional.ToNullable(top), captions.Value, semanticFields.Value, Optional.ToList(vectors), Optional.ToNullable(vectorFilterMode));
}
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchOptions.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchOptions.cs
index ea220cb371eb..ddbb41224b29 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchOptions.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchOptions.cs
@@ -36,8 +36,9 @@ public SearchOptions()
/// A value to be used to create a sticky session, which can help getting more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.
/// The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be "mylocation--122.2,44.8" (without the quotes).
/// The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.
+ /// Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.
/// The name of a semantic configuration that will be used when processing documents for queries of type semantic.
- /// Allows the user to choose whether a semantic call should fail completely (default / current behavior), or to return partial results.
+ /// Allows the user to choose whether a semantic call should fail completely, or to return partial results (default).
/// Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.
/// Enables a debugging tool that can be used to further explore your Semantic search results.
/// A full-text search query expression; Use "*" or omit this parameter to match all documents.
@@ -51,8 +52,13 @@ public SearchOptions()
/// The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.
/// A value that specifies whether captions should be returned as part of the search response.
/// The comma-separated list of field names used for semantic search.
- /// The query parameters for multi-vector search queries.
- internal SearchOptions(bool? includeTotalCount, IList facets, string filter, string highlightFieldsRaw, string highlightPostTag, string highlightPreTag, double? minimumCoverage, string orderByRaw, SearchQueryType? queryType, ScoringStatistics? scoringStatistics, string sessionId, IList scoringParameters, string scoringProfile, string semanticConfigurationName, SemanticErrorHandling? semanticErrorHandling, int? semanticMaxWaitInMilliseconds, QueryDebugMode? debug, string searchText, string searchFieldsRaw, SearchMode? searchMode, QueryLanguage? queryLanguage, QuerySpellerType? querySpeller, string queryAnswerRaw, string selectRaw, int? skip, int? size, string queryCaptionRaw, string semanticFieldsRaw, IList vectors)
+ ///
+ /// The query parameters for vector and hybrid search queries.
+ /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
+ /// The available derived classes include and .
+ ///
+ /// Determines whether or not filters are applied before or after the vector search is performed. Default is 'preFilter'.
+ internal SearchOptions(bool? includeTotalCount, IList facets, string filter, string highlightFieldsRaw, string highlightPostTag, string highlightPreTag, double? minimumCoverage, string orderByRaw, SearchQueryType? queryType, ScoringStatistics? scoringStatistics, string sessionId, IList scoringParameters, string scoringProfile, string semanticQuery, string semanticConfigurationName, SemanticErrorHandling? semanticErrorHandling, int? semanticMaxWaitInMilliseconds, QueryDebugMode? debug, string searchText, string searchFieldsRaw, SearchMode? searchMode, QueryLanguage? queryLanguage, QuerySpellerType? querySpeller, string queryAnswerRaw, string selectRaw, int? skip, int? size, string queryCaptionRaw, string semanticFieldsRaw, IList vectors, VectorFilterMode? vectorFilterMode)
{
IncludeTotalCount = includeTotalCount;
Facets = facets;
@@ -67,6 +73,7 @@ internal SearchOptions(bool? includeTotalCount, IList facets, string fil
SessionId = sessionId;
ScoringParameters = scoringParameters;
ScoringProfile = scoringProfile;
+ SemanticQuery = semanticQuery;
SemanticConfigurationName = semanticConfigurationName;
SemanticErrorHandling = semanticErrorHandling;
SemanticMaxWaitInMilliseconds = semanticMaxWaitInMilliseconds;
@@ -83,6 +90,7 @@ internal SearchOptions(bool? includeTotalCount, IList facets, string fil
QueryCaptionRaw = queryCaptionRaw;
SemanticFieldsRaw = semanticFieldsRaw;
Vectors = vectors;
+ VectorFilterMode = vectorFilterMode;
}
/// A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.
public string HighlightPostTag { get; set; }
@@ -98,7 +106,9 @@ internal SearchOptions(bool? includeTotalCount, IList facets, string fil
public string SessionId { get; set; }
/// The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.
public string ScoringProfile { get; set; }
- /// Allows the user to choose whether a semantic call should fail completely (default / current behavior), or to return partial results.
+ /// Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.
+ public string SemanticQuery { get; set; }
+ /// Allows the user to choose whether a semantic call should fail completely, or to return partial results (default).
public SemanticErrorHandling? SemanticErrorHandling { get; set; }
/// Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.
public int? SemanticMaxWaitInMilliseconds { get; set; }
@@ -108,5 +118,7 @@ internal SearchOptions(bool? includeTotalCount, IList facets, string fil
public SearchMode? SearchMode { get; set; }
/// The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use skip due to this limitation, consider using orderby on a totally-ordered key and filter with a range query instead.
public int? Skip { get; set; }
+ /// Determines whether or not filters are applied before or after the vector search is performed. Default is 'preFilter'.
+ public VectorFilterMode? VectorFilterMode { get; set; }
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchQueryVector.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchQueryVector.Serialization.cs
index 1391bb06b0a3..d14e5f392572 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchQueryVector.Serialization.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchQueryVector.Serialization.cs
@@ -5,7 +5,6 @@
#nullable disable
-using System.Collections.Generic;
using System.Text.Json;
using Azure.Core;
@@ -16,16 +15,8 @@ public partial class SearchQueryVector : IUtf8JsonSerializable
void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
{
writer.WriteStartObject();
- if (Optional.IsCollectionDefined(Value))
- {
- writer.WritePropertyName("value"u8);
- writer.WriteStartArray();
- foreach (var item in Value)
- {
- writer.WriteNumberValue(item);
- }
- writer.WriteEndArray();
- }
+ writer.WritePropertyName("kind"u8);
+ writer.WriteStringValue(Kind);
if (Optional.IsDefined(KNearestNeighborsCount))
{
writer.WritePropertyName("k"u8);
@@ -36,6 +27,11 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
writer.WritePropertyName("fields"u8);
writer.WriteStringValue(FieldsRaw);
}
+ if (Optional.IsDefined(Exhaustive))
+ {
+ writer.WritePropertyName("exhaustive"u8);
+ writer.WriteBooleanValue(Exhaustive.Value);
+ }
writer.WriteEndObject();
}
@@ -45,41 +41,15 @@ internal static SearchQueryVector DeserializeSearchQueryVector(JsonElement eleme
{
return null;
}
- Optional> value = default;
- Optional k = default;
- Optional fields = default;
- foreach (var property in element.EnumerateObject())
+ if (element.TryGetProperty("kind", out JsonElement discriminator))
{
- if (property.NameEquals("value"u8))
- {
- if (property.Value.ValueKind == JsonValueKind.Null)
- {
- continue;
- }
- List array = new List();
- foreach (var item in property.Value.EnumerateArray())
- {
- array.Add(item.GetSingle());
- }
- value = array;
- continue;
- }
- if (property.NameEquals("k"u8))
- {
- if (property.Value.ValueKind == JsonValueKind.Null)
- {
- continue;
- }
- k = property.Value.GetInt32();
- continue;
- }
- if (property.NameEquals("fields"u8))
+ switch (discriminator.GetString())
{
- fields = property.Value.GetString();
- continue;
+ case "text": return TextVector.DeserializeTextVector(element);
+ case "vector": return RawVector.DeserializeRawVector(element);
}
}
- return new SearchQueryVector(Optional.ToList(value), Optional.ToNullable(k), fields.Value);
+ return UnknownSearchQueryVector.DeserializeUnknownSearchQueryVector(element);
}
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchQueryVector.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchQueryVector.cs
index 5ddd81d55716..9c0a6aa5bf4a 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchQueryVector.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SearchQueryVector.cs
@@ -5,31 +5,38 @@
#nullable disable
-using System.Collections.Generic;
-using Azure.Core;
-
namespace Azure.Search.Documents.Models
{
- /// The query parameters for vector and hybrid search queries.
- public partial class SearchQueryVector
+ ///
+ /// The query parameters for vector and hybrid search queries.
+ /// Please note is the base class. According to the scenario, a derived class of the base class might need to be assigned here, or this property needs to be casted to one of the possible derived classes.
+ /// The available derived classes include and .
+ ///
+ public abstract partial class SearchQueryVector
{
/// Initializes a new instance of SearchQueryVector.
- public SearchQueryVector()
+ protected SearchQueryVector()
{
- Value = new ChangeTrackingList();
}
/// Initializes a new instance of SearchQueryVector.
- /// The vector representation of a search query.
+ /// The name of the kind of vector query being performed.
/// Number of nearest neighbors to return as top hits.
/// Vector Fields of type Collection(Edm.Single) to be included in the vector searched.
- internal SearchQueryVector(IReadOnlyList value, int? kNearestNeighborsCount, string fieldsRaw)
+ /// When true, triggers an exhaustive k-nearest neighbor search across all vectors within the vector index. Useful for scenarios where exact matches are critical, such as determining ground truth values.
+ internal SearchQueryVector(string kind, int? kNearestNeighborsCount, string fieldsRaw, bool? exhaustive)
{
- Value = value;
+ Kind = kind;
KNearestNeighborsCount = kNearestNeighborsCount;
FieldsRaw = fieldsRaw;
+ Exhaustive = exhaustive;
}
+
+ /// The name of the kind of vector query being performed.
+ internal string Kind { get; set; }
/// Number of nearest neighbors to return as top hits.
public int? KNearestNeighborsCount { get; set; }
+ /// When true, triggers an exhaustive k-nearest neighbor search across all vectors within the vector index. Useful for scenarios where exact matches are critical, such as determining ground truth values.
+ public bool? Exhaustive { get; set; }
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SplitSkill.Serialization.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SplitSkill.Serialization.cs
index 7a4a37b2e674..c041927958fb 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SplitSkill.Serialization.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SplitSkill.Serialization.cs
@@ -45,6 +45,30 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
writer.WriteNull("maximumPageLength");
}
}
+ if (Optional.IsDefined(PageOverlapLength))
+ {
+ if (PageOverlapLength != null)
+ {
+ writer.WritePropertyName("pageOverlapLength"u8);
+ writer.WriteNumberValue(PageOverlapLength.Value);
+ }
+ else
+ {
+ writer.WriteNull("pageOverlapLength");
+ }
+ }
+ if (Optional.IsDefined(MaximumPagesToTake))
+ {
+ if (MaximumPagesToTake != null)
+ {
+ writer.WritePropertyName("maximumPagesToTake"u8);
+ writer.WriteNumberValue(MaximumPagesToTake.Value);
+ }
+ else
+ {
+ writer.WriteNull("maximumPagesToTake");
+ }
+ }
writer.WritePropertyName("@odata.type"u8);
writer.WriteStringValue(ODataType);
if (Optional.IsDefined(Name))
@@ -88,6 +112,8 @@ internal static SplitSkill DeserializeSplitSkill(JsonElement element)
Optional defaultLanguageCode = default;
Optional textSplitMode = default;
Optional maximumPageLength = default;
+ Optional pageOverlapLength = default;
+ Optional maximumPagesToTake = default;
string odataType = default;
Optional name = default;
Optional description = default;
@@ -125,6 +151,26 @@ internal static SplitSkill DeserializeSplitSkill(JsonElement element)
maximumPageLength = property.Value.GetInt32();
continue;
}
+ if (property.NameEquals("pageOverlapLength"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ pageOverlapLength = null;
+ continue;
+ }
+ pageOverlapLength = property.Value.GetInt32();
+ continue;
+ }
+ if (property.NameEquals("maximumPagesToTake"u8))
+ {
+ if (property.Value.ValueKind == JsonValueKind.Null)
+ {
+ maximumPagesToTake = null;
+ continue;
+ }
+ maximumPagesToTake = property.Value.GetInt32();
+ continue;
+ }
if (property.NameEquals("@odata.type"u8))
{
odataType = property.Value.GetString();
@@ -166,7 +212,7 @@ internal static SplitSkill DeserializeSplitSkill(JsonElement element)
continue;
}
}
- return new SplitSkill(odataType, name.Value, description.Value, context.Value, inputs, outputs, Optional.ToNullable(defaultLanguageCode), Optional.ToNullable(textSplitMode), Optional.ToNullable(maximumPageLength));
+ return new SplitSkill(odataType, name.Value, description.Value, context.Value, inputs, outputs, Optional.ToNullable(defaultLanguageCode), Optional.ToNullable(textSplitMode), Optional.ToNullable(maximumPageLength), Optional.ToNullable(pageOverlapLength), Optional.ToNullable(maximumPagesToTake));
}
}
}
diff --git a/sdk/search/Azure.Search.Documents/src/Generated/Models/SplitSkill.cs b/sdk/search/Azure.Search.Documents/src/Generated/Models/SplitSkill.cs
index a745d6fb34b7..d45130ff5768 100644
--- a/sdk/search/Azure.Search.Documents/src/Generated/Models/SplitSkill.cs
+++ b/sdk/search/Azure.Search.Documents/src/Generated/Models/SplitSkill.cs
@@ -36,11 +36,15 @@ public SplitSkill(IEnumerable inputs, IEnumerable