Unofficial .net client for Typesense HTTP API.
You can get the NuGet package here
- Create collection
- Create document
- Upsert document
- Search collection
- Retrieve document
- Update document
- Delete document
- Retrieve collection
- Export documents
- Import documents
- List all collections
- Drop a collection
Setup in service collection. The AddTypesenseClient
can be found in the Typesense.Setup
namespace.
var provider = new ServiceCollection()
.AddTypesenseClient(config =>
{
config.ApiKey = "Hu52dwsas2AdxdE";
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");