Damien ab3bdf10f3
All checks were successful
build-packages / meilisearch-dotnet-packages (push) Successful in 11m15s
Add ollama folder with GIT LFS trackking
2025-03-01 03:23:10 -05:00
2024-10-01 22:55:24 -04:00
2024-10-01 22:55:24 -04:00
2025-02-24 09:18:51 +00:00
2025-02-27 23:48:59 -05:00
2025-03-01 03:13:42 -05:00

MeiliSearch .NET Embedded

Gitea Release Dotnet 8 Meilisearch Ollama Gitea License

Overview

MeiliSearch .NET Integration is a NuGet package that seamlessly embeds MeiliSearch into your C# application. It manages the background process and health checks for you, simplifying the integration of full-text search capabilities. In future updates, it will also handle automatic compression and decompression of indexes to help manage local storage usage effectively.

You can use the default SDK for everything, but indexs that are disabled through the SDK wont appear until reenabled with the SDK.

Features

  • Embedded MeiliSearch: Integrate MeiliSearch directly into your application.
  • Manage Indexes: Manage your indexs and documents through the SDK, you can still use the default Meilisearch SDK.
  • Add Documents: Ability to add documents and have validation on if the index is loaded.
  • Background Process Management: Automatically handles the lifecycle of the MeiliSearch process.
  • Health Monitoring: Regular checks on the health of the MeiliSearch instance to ensure it stays running.
  • API Key Management: An API key is automatically regenerated every time the MeiliSearch service starts unless one is specified in the configuration.
  • Resource Monitoring: Monitor the resources being used including storage by your MeiliSearch.
  • Future Index Management: Upcoming feature to automatically compress and decompress indexes for optimized local storage.
  • Caching Mechanism: Cache the comrpessed indexes so they are returned when you ask for a list of all indexs.
  • Search Capabilities: Ability to use the meilisearch native search capabilities with the index being loaded validation.
  • Embedded Ollama: Intergated Ollama directly into your application with a configured model.
  • AI Search Capabilities: Ability to use the meilisearch native AI search capabilities with the index being loaded validation.

Installation

To add the MeiliSearch .NET Integration package to your project, you can install it directly from NuGet. Follow the steps below based on your preferred method:

Package Manager Console

Open the Package Manager Console in Visual Studio and run the following command:

Install-Package meilisearch.NET

.NET CLI

If you're using the .NET CLI, run the following command in your terminal:

dotnet add package meilisearch.NET

AppSettings Options

  • Port: The port on which MeiliSearch will run (default is 7700).
  • UiEnabled: A boolean value to enable or disable the MeiliSearch UI (default is true).
  • ApiKey: An optional API key. If specified, this key will be used; otherwise, a new key will be generated each time the service starts.

Configuration

The MeiliSearch service can be configured using the MeiliSearchConfiguration class. The following options are available:

  • Port: The port on which MeiliSearch will run (default is 7700).
  • UiEnabled: A boolean value to enable or disable the MeiliSearch UI (default is true).
  • ApiKey: An optional API key. If specified, this key will be used; otherwise, a new key will be generated each time the service starts.

You can configure these options in your appsettings.json file as follows:

{
  "MeiliSearch": {
    "Port": 7700,
    "UiEnabled": true,
    "ApiKey": "your_api_key"
  }
}

Usage

To set up the MeiliSearch service in your application, configure dependency injection as shown below:

using System.Net;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

ServicePointManager.SecurityProtocol = SecurityProtocolType.SystemDefault;

var builder = Host.CreateApplicationBuilder();
builder.Configuration.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
builder.Services.AddMeiliSearchService();
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
builder.Logging.SetMinimumLevel(LogLevel.Information);
builder.Services.AddLogging();

var app = builder.Build();
app.Run();
Console.ReadLine();

MeiliSearchService Class Usage Guide

Methods

Start

Starts the MeiliSearch process. Logs the start of the process, sets the status to Starting, and attempts to start the process.

MeiliSearchService service = new MeiliSearchService();
service.Start();

Stop

Stops the MeiliSearch process. Logs the stop of the process, sets the status to Stopping, and attempts to stop the process.

service.Stop();

Restart

Restarts the MeiliSearch process. Stops the process using the Stop method and starts it using the Start method.

service.Restart();

CreateIndex

Creates a new index with the specified name.

service.CreateIndex("my_index");

DeleteIndex

Deletes an existing index with the specified name.

service.DeleteIndex("my_index");

AddDocument

Adds a document to the specified index.

public class MyDocument : IDocument
{
    public string Id { get; set; }
    public string Title { get; set; }
}

var document = new MyDocument { Id = "1", Title = "My Document" };
service.AddDocument("my_index", document);

GetAllIndexes

Retrieves a list of all existing indexes.

List<string> indexes = service.GetAllIndexes();

Status

Indicates the current status of the MeiliSearch process.

MeiliSearchStatus status = service.Status;

Notes

https://github.com/Mozilla-Ocho/llamafile

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

We welcome contributions! Please feel free to submit issues, pull requests, or suggestions to improve this project.

Support

For any issues or questions, please open an issue on GitHub or contact us via [your contact method].


Feel free to customize this README as necessary for your package, especially regarding the project name and license details!


Description
Package to embed meilisearch server in your .NET application and interact with it.
Readme 4 GiB
Release 0.4.0 Latest
2025-03-01 19:43:13 +00:00
Languages
C# 84.2%
PowerShell 15.8%