- Added extension methods to get
SearchClient
,SearchIndexClient
andSearchIndexerClient
using AIProjectClient.
FacetResults
is now a recursive data structure to support hierarchical aggregation and facet filtering.QueryAnswer
now supports aMaxCharLength
option to limit the character length of the answer.QueryCaption
now supports aMaxCharLength
option to limit the character length of the caption.VectorizableTextQuery
now supports aQueryRewrites
option to specify the number query rewrites the service will generate.SemanticSearchOptions
now supports aQueryRewrites
option to specify the number query rewrites the service will generate.VectorSearchCompression
now supports configuring theRescoringOptions
.IndexingParametersConfiguration
now supports two additional options forMarkdownParsingSubmode
andMarkdownHeaderDepth
.- Added a new skill:
DocumentIntelligenceLayoutSkill
that extracts content and layout information (as markdown), via Azure AI Services, from files within the enrichment pipeline. - Added 2 subtypes of
CognitiveServiceAccounts
:AzureCognitiveServiceAccount
andAzureCognitiveServiceAccountKey
.
- Fixed a bug in the
SearchResult.DocumentDebugInfo
property by changing its type fromIReadOnlyList<DocumentDebugInfo>
toDocumentDebugInfo
. (#46958)
- Added support for
VectorSearchCompression.TruncationDimension
, which allows specifying the number of dimensions to truncate vectors to. - Added support for
VectorQuery.FilterOverride
, which allows vector queries to override the broaderSearchOptions.Filter
, enabling more specific configurations for vector queries. SplitSkill
now supports tokenization.DocumentDebugInfo
is extended with vector scores for the results.
- Added support for
2024-07-01
service version. SemanticSearchOptions
now supportsSemanticQuery
, which allows for specifying a semantic query that is only used for semantic reranking.VectorQuery
now supportsOversampling
andWeight
, which allows for specifying richer configurations on how vector queries affect search results.- Added support for
VectorizableTextQuery
, which allows for passing a text-based query that is vectorized service-side byVectorSearchVectorizer
s configured on the index so that vectorization doesn't need to happen before querying. - Added support for "bring your own endpoint" with
VectorSearchVectorizer
, with implementationsAzureOpenAIVectorizer
andWebApiVectorizer
. This enables the service to use a user-provided configuration for vectorizing text, rather than requiring all client-side calls to vectorize before querying, allowing for easier standardization of vectorization. - Added support for compression with
VectorSearchCompression
, with implementationsBinaryQuantizationCompression
andScalarQuantizationCompression
. This allows for reducing the size of vectors in the index, which can reduce storage costs and improve querying performance. - Added support for
VectorEncodingFormat
, which allows for specifying the encoding format of the vector data. - Added support for
AzureOpenAIEmbeddingSkill
, which is a skill that uses the Azure OpenAI service to create text embeddings during indexing. - Added support for index projections with
SearchIndexerIndexProjection
, which allows for specifying how indexed documents are projected in the index (or indexes). - Added support for "narrow" types in
SearchFieldDataType
. This allows for specifying smaller types for vector fields to reduce storage costs and improve querying performance. - Added support for
SearchIndexerDataIdentity
, which allows for specifying the identity for the data source for the indexer. SearchField
andSearchableField
now supportIsStored
andVectorEncodingFormat
configurations.IsStored
allows for specifying behaviors on how the index will retain vector data (enabling the ability to reduce storage costs), andVectorEncodingFormat
allows for specifying the encoding format of the vector data.OcrSkill
now supportsLineEnding
, which allows for specifying the line ending character used by the OCR skill.SplitSkill
now supportsMaximumPagesToTake
andPageOverlapLength
, which allows for specifying how the split skill behaves when splitting documents into pages.SearchServiceLimits
now supportsMaxStoragePerIndexInBytes
, which shows the maximum storage allowed per index.
- All service concepts that have been in preview but not included in the
2024-07-01
GA have been removed. This includes concepts such as index aliases, normalizers, Azure Machine Learning skills, hybrid search, and more.
- Added support for new embedding models
text-embedding-3-small
andtext-embedding-3-large
, as part of our existingAzureOpenAIVectorizer
andAzureOpenAIEmbeddingSkill
features. - Added support for
AIServicesVisionVectorizer
andVisionVectorizeSkill
to generate embeddings for an image or text using the Azure AI Services Vision Vectorize API. - Added support for
AzureMachineLearningVectorizer
, allowing users to specify an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog to generate vector embeddings of query strings. - Added support for
byte
toSearchFieldDataType
.
- Added the
VectorSearch.Compressions
property, which can be utilized to configure options specific to the compression method used during indexing or querying. - Added the
SearchField.IsStored
,VectorSearchField.IsStored
, andVectorSearchFieldAttribute.IsStored
property. It represent an immutable value indicating whether the field will be persisted separately on disk to be returned in a search result. This property is applicable only for vector fields. - Added support for
sbyte
andint16
toSearchFieldDataType
.
- Publicly exposed HttpPipeline for all search clients.
- Removed the unintentional addition of the abstract keyword to the
KnowledgeStoreProjectionSelector
andKnowledgeStoreStorageProjectionSelector
types.
- Added all the new types and updated the names as defined in the GA version 11.5.0.
- Fix paging issue for semantic and vector search (#40137).
- Added support for Vector Search.
- Added support for Semantic Search.
- Added support for
PiiDetectionSkill
. It allows you extracts personal information from an input text and gives you the option of masking it using the Text Analytics API. - Added new languages for
OcrSkill
andImageAnalysisSkill
as we have upgraded them to use Cognitive Services Computer Vision v3.2, which now includes support for additional languages. Refer to the language lists here. - Added new languages for
SplitSkill
. Language lists can be found here. - Deprecated
SentimentSkill.SkillVersion.V1
andEntityRecognitionSkill.SkillVersion.V1
; useSentimentSkill.SkillVersion.V3
andEntityRecognitionSkill.SkillVersion.V3
instead.
- Added support for
VectorSearch.Vectorizers
, which contains configuration options for vectorizing text vector queries, andVectorSearch.Profiles
, which define combinations of configurations to use with vector search. - Added the
VectorSearchAlgorithmConfiguration
base type, containing configuration options specific to the algorithm used during indexing and/or querying. Derived classes includeExhaustiveKnnVectorSearchAlgorithmConfiguration
andHnswVectorSearchAlgorithmConfiguration
. - Added the
SearchOptions.VectorQueries
base type, which is used for the query parameters for vector and hybrid search queries. Derived classes includeVectorizableTextQuery
andRawVectorQuery
. WithRawVectorQuery
, users can pass raw vector values for vector search, whileVectorizableTextQuery
allows the passing of text values to be vectorized for vector search. - Added
SearchOptions.VectorFilterMode
, determining whether filters are applied before or after vector search is executed. - Added
SearchOptions.SemanticQuery
, which enables the setting of a dedicated search query for semantic reranking, semantic captions, and semantic answers. - Added support for
AzureOpenAIEmbeddingSkill
, which enables the generation of vector embeddings for given text inputs using the Azure Open AI service. - Added
SearchIndexStatistics.VectorIndexSize
, which reports the amount of memory consumed by vectors in the index. - Added
KnowledgeStore.Parameters
, which defines a dictionary of knowledge store-specific configuration properties. - Added
SearchIndexerSkillset.IndexProjections
, which specifies additional projections to secondary search indexes.
- In
SearchOptions
, theIList<SearchQueryVector> Vectors
property has been removed in favor of the abstract base typeIList<VectorQuery> VectorQueries
. - In
SearchField
, thevectorSearchConfiguration
property has been removed in favor of the newVectorSearchProfile
property. - In
VectorSearch
,AlgorithmConfigurations
has been renamed toAlgorithms
.
- Added the ability to perform multiple vectors query searches.
- Added support for vector queries over multiple fields.
- Added support for Vector Search.
- Fixed issue with
QueryCaptionsType.None
in semantic search, resolving an invalid response to the service (#37164).
- Added new languages for
OcrSkill
andImageAnalysisSkill
as we have upgraded them to use Cognitive Services Computer Vision v3.2 which supports a lot more languages for both APIs. Language lists can be found here.
- Fixed user-assigned identity type names (#29813).
- All features from the 11.4.x betas that weren't included in 11.4.0.
- Support for Azure Active Directory based authentication. Users can specify a
TokenCredential
when creating aSearchClient
,SearchIndexClient
or aSearchIndexerClient
. For example, you can get started withnew SearchClient(endpoint, new DefaultAzureCredential())
to authenticate via AAD using Azure.Identity. For more details see how to use role-based authentication in Azure Cognitive Search. - Added multi-cloud support via
SearchClientOptions.Audience
to allow users to select the Azure cloud where the resource is located (#30306).
- Enhanced the documentation of some
SearchOptions
properties by adding links to REST docs - #22808 - Fixed issue where
SearchOptions.SessionId
property was not passed to the service (#27549)
- Added Troubleshooting Guide.
- This GA release includes AAD with multi-cloud support and all the bug fixes since the last 11.3.0 GA release. Other preview features and breaking changes from the 11.4.0-beta.1 to 11.4.0-beta.9 releases are not included in this GA release.
- Added support for Lexical normalizers in
SimpleField
andSearchableField
. - Added multi-cloud support via
SearchClientOptions.Audience
to allow users to select the Azure cloud where the resource is located (#30306).
- Fixed issue where
SearchOptions.SessionId
property was not passed to the service (#27549)
- Added Troubleshooting Guide.
- Added support to create, update and delete aliases via the
SearchIndexClient
.
- Added
Unk
as anOcrSkillLanguage
value. The values are used to set the default language code for the OCR cognitive skill. - Support for
AzureMachineLearningSkill
. The AML skill allows you to extend AI enrichment with a custom Azure Machine Learning (AML) model. Once an AML model is trained and deployed, an AML skill integrates it into AI enrichment.
- Added support for Semantic Search.
SearchOptions
now support specifyingSemanticSettings
to influence the search behavior.
- Renamed
IndexerStateHighWaterMark
toIndexerChangeTrackingState
. - Renamed the property
HighWaterMark
toChangeTrackingState
inIndexerState
.
- Added APIs to reset documents and skills.
- Renamed
QueryAnswer
toQueryAnswerType
inSearchOptions
. - Renamed
QueryCaption
toQueryCaptionType
inSearchOptions
. - Renamed
QuerySpeller
toQuerySpellerType
inSearchOptions
. - Renamed
QueryCaptionHighlight
toQueryCaptionHighlightEnabled
inSearchOptions
.
- Support for Lexical normalizers in text analysers via
AnalyzeTextOptions
.
- Support for Azure Active Directory based authentication. Users can specify a
TokenCredential
when creating aSearchClient
,SearchIndexClient
or aSearchIndexerClient
. For example, you can get started withnew SearchClient(endpoint, new DefaultAzureCredential())
to authenticate via AAD using Azure.Identity. For more details see how to use role-based authentication in Azure Cognitive Search.
- Enhanced the documentation of some
SearchOptions
properties by adding links to REST docs - #22808
- Support for additional/enhanced skills - EntityLinkingSkill, EntityRecognitionSkill, PiiDetectionSkill, SentimentSkill
- Use managed identities in Azure Active Directory with SearchIndexerDataIdentity
- Adds stable features and bug fixes from the 11.3.0-beta.1 and 11.3.0-beta.2 releases. Preview service features not generally available yet, like Semantic Search and Normalizers, are not included in this GA release.
- Added support for Semantic Search.
- Added support for
Azure.Core.GeoJson
types inSearchDocument
,SearchFilter
andFieldBuilder
. - Added
EventSource
based logging. Event source name is Azure-Search-Documents. Current set of events are focused on tuning batch sizes forSearchIndexingBufferedSender
. - Added
CustomEntityLookupSkill
andDocumentExtractionSkill
. AddedDefaultCountryHint
inLanguageDetectionSkill
. - Added
LexicalNormalizer
to include predefined set of normalizers. See here for more details on search normalizers. AddedNormalizer
as aSearchField
in an index definition. - Added support for Azure Data Lake Storage Gen2 -
AdlsGen2
inSearchIndexerDataSourceType
.
- Added setters for
MaxLength
andMinLength
inLengthTokenFilter
. - Added a public constructor for
SearchIndexingBufferedSender<T>
. - Added
IndexActionEventArgs<T>
to track indexing actions. - Added
IndexActionCompletedEventArgs<T>
to track the completion of an indexing action. - Added
IndexActionFailedEventArgs<T>
to track the failure of an indexing action. - All changes from the 11.2.0-beta.2 and 11.2.0-beta.1 releases listed below.
- Renamed
SearchIndexingBufferedSenderOptions<T>.MaxRetries
toSearchIndexingBufferedSenderOptions<T>.MaxRetriesPerIndexAction
. - Renamed
SearchIndexingBufferedSenderOptions<T>.MaxRetryDelay
toSearchIndexingBufferedSenderOptions<T>.MaxThrottlingDelay
. - Renamed
SearchIndexingBufferedSenderOptions<T>.RetryDelay
toSearchIndexingBufferedSenderOptions<T>.ThrottlingDelay
. - Removed the helper method
SearchClient.CreateIndexingBufferedSender<T>()
. Instead, callers are expected to use the public constructor ofSearchIndexingBufferedSender<T>
.
- Added
EncryptionKey
toSearchIndexer
,SearchIndexerDataSourceConnection
, andSearchIndexerSkillset
. - Added configuration options to tune the performance of
SearchIndexingBufferedSender<T>
.
- Fixed issue calling
SearchIndexClient.GetIndexNames
that threw an exception (#15590) - Fixed issue where
ScoringProfile.FunctionAggregation
did not correctly handle null values (#16570) - Fixed overly permissive date parsing on facets (#16412)
- Add
SearchIndexingBufferedSender<T>
to make indexing lots of documents fast and easy. - Add support to
FieldBuilder
to define search fields forMicrosoft.Spatial
types without an explicit assembly dependency. - Add support to
SearchFilter
to encode geometric types fromMicrosoft.Spatial
without an explicit assembly dependency. - Add
IndexingParameters.IndexingParametersConfiguration
property to define well-known properties supported by Azure Cognitive Search.
- Support deserializing null values during deserialization of skills (#15108)
- Fixed issues preventing mocking clients or initializing all models.
- Bug in TaskExtensions.EnsureCompleted method that causes it to unconditionally throw an exception in the environments with synchronization context
- Added
SearchClientOptions.Serializer
to set whichObjectSerializer
to use for serialization. - Added
FieldBuilder
to easily createSearchIndex
fields from a model type.
- Removed
$select
from the query parameters logged by default. You can add it back viaSearchClientOptions.Diagnostics.LoggedQueryParameters("$select");
if desired.
- Changed version to 11.0.0.
- Removed preview version
SearchClientOptions.ServiceVersion.V2019_05_06_Preview
and added versionSearchClientOptions.ServiceVersion.V2020_06_30
.
- Removed
Azure.Core.Experimental
reference and features until they're moved intoAzure.Core
. - Removed
SearchServiceCounters.SkillsetCounter
. - Removed
new SearchOptions(string continuationToken)
overload.
- Referencing
Azure.Core.Experimental
which brings new spatial types and custom serializers. - Added
SearchClientBuilderExtensions
to integrate with ASP.NET Core. - Added
SearchModelFactory
to mock output model types.
- Made collection- and dictionary-type properties read-only, i.e. has only get-accessors, based on [.NET Guidelines][net-guidelines-collection-properties].
- Moved models for managing indexes, indexers, and skillsets to
Azure.Search.Documents.Indexes.Models
. - Removed the
SynonymMap.Format
property since only the "solr" format is supported currently. - Renamed
AnalyzeRequest
toAnalyzeTextOptions
, and overloaded constructors with required parameters. - Renamed
AnalyzeTextOptions.Analyzer
toAnalyzeTextOptions.AnalyzerName
. - Renamed
AnalyzeTextOptions.Tokenizer
toAnalyzeTextOptions.TokenizerName
. - Renamed
CustomAnalyzer.Tokenizer
toCustomAnalyzer.TokenizerName
. - Renamed
SearchIndexerDataSource
toSearchIndexerDataSourceConnection
. - Renamed
Autocompletion
toAutocompleteItem
. - Renamed methods on
SearchIndexerClient
matching "*DataSource" to "*DataSourceConnection". - Split
SearchServiceClient
intoSearchIndexClient
for managing indexes, andSearchIndexerClient
for managing indexers, both of which are now inAzure.Search.Documents.Indexes
. SearchClient.IndexDocuments
now throws anAggregateException
wrapping all theRequestFailedException
s in the batch.- Removed
dynamic
support fromSearchDocument
for the time being.
- Renamed
SearchIndexClient
toSearchClient
. - Removed constructor from
SynonymMap
withIEnumerable<string>
parameter. SearchServiceClient.GetIndexes
andSearchServiceClient.GetIndexesAsync
now returnPageable<SearchIndex>
andAsyncPageable<SearchIndex>
respectively.- Replaced
MatchConditions
parameters withbool onlyIfUnchanged
parameters that require a model with anETag
property. ETag
properties have been redefined fromstring
toAzure.ETag?
consistent with other packages.- Renamed
Analyzer
toLexicalAnalyzer
. - Renamed
AnalyzerName
toLexicalAnalyzerName
. - Removed
AzureActiveDirectoryApplicationCredentials
and moved itsApplicationId
andApplicationSecret
properties toSearchResourceEncryptionKey
. - Renamed
DataContainer
toSearchIndexerDataContainer
. - Renamed
DataSource
toSearchIndexerDataSource
. - Removed
DataSourceCredentials
and moved itsConnectionString
property toSearchIndexerDataSource
. - Renamed
DataSourceType
toSearchIndexerDataSourceType
. - Renamed
DataType
toSearchFieldDataType
. - Renamed
EncryptionKey
toSearchResourceEncryptionKey
. - Renamed
EncryptionKey.KeyVaultUri
toSearchResourceEncryptionKey.VaultUri
. - Renamed
EncryptionKey.KeyVaultKeyName
toSearchResourceEncryptionKey.KeyName
. - Renamed
EncryptionKey.KeyVaultKeyVersion
toSearchResourceEncryptionKey.KeyVersion
. - Renamed
Field
toSearchField
. - Renamed
FieldBase
toSearchFieldTemplate
. - Renamed
Index
toSearchIndex
. - Renamed
Indexer
toSearchIndexer
. - Renamed
IndexerExecutionInfo
toSearchIndexerStatus
. - Renamed
IndexerLimits
toSearchIndexerLimits
. - Renamed
ItemError
toSearchIndexerError
. - Renamed
ItemWarning
toSearchIndexerWarning
. - Renamed
LengthTokenFilter.Min
toLengthTokenFilter.MinLength
. - Renamed
LengthTokenFilter.Max
toLengthTokenFilter.MaxLength
. - Renamed
RegexFlags
toRegexFlag
following .NET naming guidelines. - Renamed
Skill
toSearchIndexerSkill
. - Renamed
Skillset
toSearchIndexerSkillset
. - Renamed
StandardAnalyzer
toLuceneStandardAnalyzer
. - Renamed
StandardTokenizer
toLuceneStandardTokenizer
. - Renamed
StandardTokenizerV2
toLuceneStandardTokenizerV2
. - Renamed
TokenInfo
toAnalyzedTokenInfo
. - Renamed
Tokenizer
toLexicalTokenizer
. - Renamed
TokenizerName
toLexicalTokenizerName
.
- Added models and methods to
SearchServiceClient
to create and manage indexes. - Added support for continuation tokens to resume server-side paging.
- Renamed to Azure.Search.Documents (assembly, namespace, and package)
- Replaced SearchApiKeyCredential with AzureKeyCredential
- Renamed
SearchServiceClient.GetStatistics
andSearchServiceClient.GetStatisticsAsync
toSearchServiceClient.GetServiceStatistics
andSearchServiceClient.GetServiceStatisticsAsync
- Initial preview of the Azure.Search client library enabling you to query and update documents in search indexes.