.net client for Typesense.
You can get the NuGet package here.
Setup in service collection so it can be dependency injected. The AddTypesenseClient can be found in the Typesense.Setup namespace. Remember to change the settings to your settings to match your Typesense service.
var provider = new ServiceCollection()
.AddTypesenseClient(config =>
{
config.ApiKey = "mysecretapikey";
config.Nodes = new List<Node>
{
new Node
{
Host = "localhost",
Port = "8108",
Protocol = "http"
}
};
}).BuildServiceProvider();var schema = new Schema
{
Name = "Addresses",
Fields = new List<Field>
{
new Field("id", "int32", false),
new Field("houseNumber", "int32", false),
new Field("accessAddress", "string", false),
},
DefaultSortingField = "id"
};
var createCollectionResult = await typesenseClient.CreateCollection(schema);var address = new Address
{
Id = 1,
HouseNumber = 2,
AccessAddress = "Smedgade 25B"
};
var createDocumentResult = await typesenseClient.CreateDocument<Address>("Addresses", address);var address = new Address
{
Id = 1,
HouseNumber = 2,
AccessAddress = "Smedgade 25B"
};
var upsertResult = await typesenseClient.UpsertDocument<Address>("Addresses", address);var query = new SearchParameters
{
Text = "Smed",
QueryBy = "accessAddress"
};
var searchResult = await typesenseClient.Search<Address>("Addresses", query);var retrievedDocument = await typesenseClient.RetrieveDocument<Address>("Addresses", "1");var address = new Address
{
Id = 1,
HouseNumber = 2,
AccessAddress = "Smedgade 25B"
};
var updateDocumentResult = await typesenseClient.UpdateDocument<Address>("Addresses", "1", address);var deleteResult = await typesenseClient.DeleteDocument<Address>("Addresses", "1");var deleteResult = await typesenseClient.DeleteDocuments("Addresses", "houseNumber:>=3", 100);var deleteCollectionResult = await typesenseClient.DeleteCollection("Addresses");The default batch size is 40.
The default ImportType is Create.
You can pick between three different import types Create, Upsert, Update.
The returned values are a list of ImportResponse that contains a success code, error and the failed document as a string representation.
var importDocumentResults = await typesenseClient.ImportDocuments<Address>("Addresses", addresses, 40, ImportType.Create);var addresses = await typesenseClient.ExportDocuments<Address>("Addresses");