All checks were successful
build-packages / meilisearch-dotnet-packages (push) Successful in 6m3s
57 lines
2.1 KiB
C#
57 lines
2.1 KiB
C#
using Meilisearch;
|
|
using meilisearch.NET.Interfaces;
|
|
using meilisearch.NET.Services.DocumentManagement;
|
|
using meilisearch.NET.Services.IndexManagement;
|
|
using meilisearch.NET.Services.ProcessManagement;
|
|
|
|
namespace meilisearch.NET;
|
|
|
|
public class MeiliSearchService : IDisposable
|
|
{
|
|
internal readonly MeiliSearchProcessManager ProcessManager;
|
|
internal readonly IIndexManager IndexManager;
|
|
internal readonly IDocumentManager DocumentManager;
|
|
internal readonly MeilisearchClient Client;
|
|
|
|
public MeiliSearchService(
|
|
MeiliSearchProcessManager processManager,
|
|
IIndexManager indexManager,
|
|
IDocumentManager documentManager,
|
|
MeilisearchClient client)
|
|
{
|
|
Client = client;
|
|
ProcessManager = processManager;
|
|
IndexManager = indexManager;
|
|
DocumentManager = documentManager;
|
|
ProcessManager.StartProcess().Wait();
|
|
}
|
|
|
|
public async Task Start() => await ProcessManager.StartProcess();
|
|
public long GetTotalStorageUsage(bool useCompressedSize = true)
|
|
=> IndexManager.GetTotalStorageUsage(useCompressedSize);
|
|
public long GetIndexStorageUsage(string indexName, bool useCompressedSize = true)
|
|
=> IndexManager.GetIndexStorageUsage(indexName, useCompressedSize);
|
|
public void Stop() => ProcessManager.StopProcess();
|
|
|
|
public bool IsRunning() => ProcessManager.IsProcessRunning();
|
|
|
|
public Task SetIndexEnabled(string indexName, bool enabled)
|
|
=> IndexManager.SetIndexEnabledAsync(indexName, enabled);
|
|
|
|
public ProcessResourceStats GetResourceUsage() => ProcessManager.GetResourceUsage();
|
|
|
|
public Task<List<string>> GetAllIndexes() => IndexManager.GetAllIndexes();
|
|
|
|
public Task CreateIndex<T>(string indexName) where T : IDocument
|
|
=> IndexManager.CreateIndexAsync<T>(indexName);
|
|
|
|
public Task DeleteIndex(string indexName) => IndexManager.DeleteIndexAsync(indexName);
|
|
|
|
public void AddDocument(string repositoryId, IDocument document, bool autoCommit = false)
|
|
=> DocumentManager.AddDocument(repositoryId, document, autoCommit);
|
|
|
|
public void Dispose()
|
|
{
|
|
ProcessManager.Dispose();
|
|
}
|
|
} |