dotnet add package IndxSearchLib --version                
NuGet\Install-Package IndxSearchLib -Version                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IndxSearchLib" Version="" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add IndxSearchLib --version                
#r "nuget: IndxSearchLib,"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install IndxSearchLib as a Cake Addin
#addin nuget:?package=IndxSearchLib&version=

// Install IndxSearchLib as a Cake Tool
#tool nuget:?package=IndxSearchLib&version=                


IndxSearchLib Developer Kit v3.3.0.5

Indx is a modern search system that stands out from the established monoliths with its simplicity, efficiency, flexibility and unique functionality.

Indx differs from other search libraries by using a pattern recognition system, rather than a linguistic model. This means that the search engine can recognize fragments of the same pattern. With this method, the entire search string is indexed, which allows the system to recognize relationships between keywords, unlike traditional search systems which merely index single words in a list.

Documentation: Indx Documentation.

Features at a glance

  • Smarter searching across keywords
  • Real-time, instant search as you type
  • Intelligent handling of major typos
  • No configuration needed
  • Lightweight software with minimal resource usage

Developer license

This version is licensed for testing purposes only and will expire on September 30, 2024. To extend the license, please register as a developer.

A commercial license is required to use the system in a production environment.


Prerequisites: Download .NET 8.

// Namespaces
using IndxSearchLib;

Get started

Download a test console app with a dataset to see how to use IndxSearchLib here:

This guide includes some arguments set to null. These arguments are intended for more advanced usage scenarios.

Create an instance

var SearchEngine = new IndxSearchEngine();

Insert documents

The Insert function also accepts arrays.

var data = new Document[]
    new (0, "The Matrix"),
    new (1, "The Matrix Reloaded?"),
    new (2, "The Matrix Revolutions"),
    new (3, "The Matrix Resurrections")




Check status

The search engine will not be able to search before indexing is complete.

while(SearchEngine.Status.SystemState != SystemState.Ready)

Search query

var text = "Matri"; // Pattern to be searched for
var numRecords = 30; // Max records to be returned
var query = new SearchQuery(text, numRecords);
var result = SearchEngine.Search(query);

List results

int index = 0;
foreach (var record in result.SearchRecords)
    // If applyCoverage is activated, the result class returns CoverageBottomIndex to use to truncate the list.
    if (result.CoverageBottomIndex != -1 && index > result.CoverageBottomIndex) { break; }

    // List index, Indexed Text and Metric Score
    Console.WriteLine($" ({record.MetricScore})");

Delete documents

SearchEngine.Delete(key); // Specify a key to a single doc
SearchEngine.DeleteAllDocuments(); // Delete all docs of instance

Check if reindex is required

Indx is a vector based engine that compares all searchable patterns to each other to create a vector model. Therefore when you alter the dataset more than 20% by inserting and deleting single documents, you should run indexing again. The status class has a bool to tell you this.

bool reIndexRequired = SearchEngine.Status.ReIndexRequired;

Searching will still be possible even if reindexing is necessary, but the automatic relevancy ranking function will be somewhat degraded.


Check version and license

string version = SearchEngine.Status.Version;
bool validLicense = SearchEngine.Status.ValidLicense;
DateTime licenseExpiration = SearchEngine.Status.LicenseExpirationDate;

This version is an unregistered developer license, and will expire within months. You can extend this by applying as a registered developer.

Extending the license

After registering as a developer, or by purchasing rights for commercial use, you will receive an indx.license file. This should be referenced in your project for IndxSearchLib to interact with it.

    <None Include="indx.license">

Commercial use

Indx has a licensing fee for commercial use. Please contact us on to inquire.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated 91 6/18/2024 83 6/11/2024