This page documents an earlier version of the API client. For the latest version, see Upgrade.
Upgrade to version 6
The design of version 6 of the .NET client is almost the same as the previous version to make upgrading as smooth as possible. The names of the client and index classes changed toSearchClient and SearchIndex with similar method names.
This new version is compatible with the same .NET versions as before: from .NET 4.5 to .NET Core 2.2.
Upgrade the library
With the .NET command-line tool
With the NuGet package manager console
With the NuGet website
Download the package on NuGet.org.Client instantiation
Replace the instantiation of the client as shown below.C#
Configure the client
You can instantiate all clients with configuration objects. This is useful to change how a client behaves. You can configure:BatchSizeto customize the size of batch for save methodsHoststo set custom hosts
DefaultHeaders dictionary to set some HTTP Headers for every request.
Example:
C#
Analytics instantiation
Similarly, you need to update the way you initialize the Analytics client.C#
New methods
The client has some new methods to help implement commonly used features. These features were always available but required either a deeper understanding or custom code.CopySettings: lets you copy settings between indices.CopySynonyms: lets you copy synonyms between indices.CopyRules: lets you copy rules between indices.ReplaceAllObjects: lets you add new objects to an index and remove all existing ones, atomically.ReplaceAllSynonyms: lets you add new synonyms to an index and remove all existing ones, atomically.ReplaceAllRules: lets you add new Rules to an index and remove all existing ones, atomically.AccountClient.CopyIndex: lets you copy an index between Algolia applications.CustomRequest: lets you request the Algolia API with custom parameters, URLs, and headers.
Breaking changes
JObject and types
The v6 of the client, in contrast to the previous one, is typed for every method. This implies a breaking change on most methods.
You can still save and retrieve your records with JObject. For Settings, Rules, APIkeys, and Synonyms, you need to convert your JObject to a class.
How to export JObject to new types
Example with settings:
C#
This snippet also works for all other classes in the client, such as
Rules, APIkeys, and Synonyms.List of method changes
| Before | After |
|---|---|
SetSettings(settings, null, true) | SetSettings(settings, forwardToReplicas: true) |
BatchSynonyms(synonyms, true, false) | SaveSynonyms(synonyms, forwardToReplicas: true) |
BatchSynonyms(synonyms, true, true) | ReplaceAllSynonyms(synonyms, forwardToReplicas: true) |
BatchSynonyms(synonyms, false, false) | SaveSynonyms(synonyms) |
BatchSynonyms(synonyms, false, true) | ReplaceAllSynonyms(synonyms) |
AddObjects(objectsWithObjectId) | SaveObjects(objectsWithObjectId) |
AddObjects(objectsWithoutObjectId) | SaveObjects(objectsWithoutObjectId, autoGenerateObjectId: true) |
List of return type changes
AlgoliaClient/SearchClient
| Method name | New return type | Old return type |
|---|---|---|
InitIndex | SearchIndex | Index |
MultipleGetObjects | MultipleGetObjectsResponse< T > | JObject |
MultipleQueries | MultipleQueriesResponse< T > | JObject |
MultipleBatch | MultipleIndexBatchIndexingResponse | JObject |
ListIndices | ListIndicesResponse | JObject |
DeleteIndex | DeleteResponse | JObject |
ListApiKeys | ListApiKeysResponse | JObject |
GetApiKey | ApiKey | JObject |
AddApiKey | AddApiKeyResponse | JObject |
UpdateApiKey | UpdateApiKeyResponse | JObject |
DeleteApiKey | DeleteApiKeyResponse | JObject |
ListClusters | IEnumerable< ClustersResponse > | JObject |
SearchUserIDs | SearchResponse< UserIdResponse > | JObject |
ListUserIds | ListUserIdsResponse | JObject |
GetUserId | UserIdResponse | JObject |
GetTopUserId | TopUserIdResponse | JObject |
AssignUserId | AssignUserIdResponse | JObject |
RemoveUserId | RemoveUserIdResponse | JObject |
GetLogs | LogResponse | JObject |
CopySettings | CopyToResponse | JObject |
CopyRules | CopyToResponse | JObject |
CopySynonyms | CopyToResponse | JObject |
CopyIndex | CopyToResponse | JObject |
MoveIndex | MoveIndexResponse | JObject |
AlgoliaClient/AnalyticsClient
| Method name | New return type | Old return type |
|---|---|---|
GetABTest | ABTest | JObject |
GetABTests | ABTestsReponse | JObject |
AddABTest | AddABTestResponse | JObject |
StopABTest | StopABTestResponse | JObject |
DeleteABTest | DeleteABTestResponse | JObject |
Index/SearchIndex
| Method name | New return type | Old return type |
|---|---|---|
PartialUpdateObject | UpdateObjectResponse | JObject |
PartialUpdateObjects | BatchIndexingResponse | JObject |
SaveObject | BatchIndexingResponse | JObject |
SaveObjects | BatchIndexingResponse | JObject |
ReplaceAllObjects | MultiResponse | JObject |
Batch | BatchResponse | JObject |
Batch | BatchResponse | JObject |
DeleteObject | DeleteResponse | JObject |
DeleteObjects | BatchIndexingResponse | JObject |
DeleteBy | DeleteResponse | JObject |
ClearObjects | DeleteResponse | JObject |
Search | SearchResponse< T > | JObject |
SearchForFacetValue | SearchForFacetResponse | JObject |
GetObject | T | JObject |
GetObjects | IEnumerable< T > | JObject |
Browse | IndexIterator< T > | JObject |
BrowseFrom | BrowseIndexResponse< T > | JObject |
GetRule | Rule | JObject |
SearchRule | SearchResponse< Rule > | JObject |
SaveRule | SaveRuleResponse | JObject |
SaveRules | BatchResponse | JObject |
ReplaceAllRules | BatchResponse | JObject |
DeleteRule | DeleteResponse | JObject |
ClearRules | DeleteResponse | JObject |
GetSettings | IndexSettings | JObject |
SetSettings | SetSettingsResponse | JObject |
SearchSynonyms | SearchResponse< Synonym > | JObject |
GetSynonym | Synonym | JObject |
SaveSynonyms | SaveSynonymResponse | JObject |
ReplaceAllSynonyms | SaveSynonymResponse | JObject |
SaveSynonym | SaveSynonymResponse | JObject |
DeleteSynonym | DeleteResponse | JObject |
ClearSynonyms | ClearSynonymsResponse | JObject |
CopyTo | CopyToResponse | JObject |
MoveFrom | MoveIndexResponse | JObject |
WaitTask | Void | JObject |
GetTask | TaskStatusResponse | JObject |