IndxSearchLib 4.0.0

dotnet add package IndxSearchLib --version 4.0.0
                    
NuGet\Install-Package IndxSearchLib -Version 4.0.0
                    
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="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IndxSearchLib" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="IndxSearchLib" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add IndxSearchLib --version 4.0.0
                    
#r "nuget: IndxSearchLib, 4.0.0"
                    
#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.
#addin nuget:?package=IndxSearchLib&version=4.0.0
                    
Install IndxSearchLib as a Cake Addin
#tool nuget:?package=IndxSearchLib&version=4.0.0
                    
Install IndxSearchLib as a Cake Tool

IndxSearchLib

IndxSearchLib Developer Kit v4.0.0

Indx is a high-performance, embeddable search engine for developers working with structured data. Built from the ground up for speed, typo tolerance, and ease of use.

Whether you're building a modern SaaS platform, a high-throughput microservice, or a lightning-fast local app, Indx is designed to drop in and just work.

Indx differs from other search libraries by using a pattern recognition system rather than a lexical model. It identifies fragments of repeating structure — where the shape and length of the pattern influence recognition — enabling powerful text matching across variations.

V4 JSON mode

  • Field based indexing with support for nesting
  • Schema-less JSON configuration
  • Filters, Weights, Sorting, Boosting logic
  • Facets with histogram

Documentation: Indx Documentation.

Download example apps to see how to use IndxSearchLib here:

Core Features at a glance

  • Language agnostic pattern recognition
  • Real-time, instant search as you type
  • Smart handling of major typos
  • Lightweight software with minimal resource usage

Developer license

This is an unlicensed version of Indx, and is limited to 25.000 documents. To get a developer license and extend the limit, register as a developer.

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

The documentations in this document covers text string search. To use JSON workflow, see the documentation

Installation

Prerequisites: Download .NET 9.

// Namespaces
using Indx;
using Indx.Api;

Get started

A minimal approach to using Indx v4

Create an instance

var engine = new SearchEngine();

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")
};

engine.Insert(data);

Index

engine.Index();

while (engine.Status.SystemState != SystemState.Ready) Thread.Sleep(100); // await indexing complete

Set up query

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

List results

foreach (var record in result.SearchRecords)
{
    Console.Write(record.IndexedText);
    Console.WriteLine($" ({record.Score})");
}

Delete documents

engine.Delete(key); // Specify a key to a single doc
engine.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 = engine.Status.ReIndexRequired;

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

Licensing

This Nuget is unlicensed and intended for testing purposes. The number of documents you can index without a license is 25.000. To extend this, register as a developer.

Adding a license

After registering as a developer, or by acquiring rights for commercial use, you will receive a .license file. This should be placed in your project and loaded in the constructor.

var engine = new SearchEngine("indx.license");
Check version and license information
string version = engine.Status.Version;
bool validLicense = engine.Status.LicenseInfo.ValidLicense;
int documentLimit = engine.Status.LicenseInfo.DocumentLimit;
DateTime licenseExpiration = engine.Status.LicenseInfo.ExpirationDate;

Commercial use

Indx has a licensing fee for commercial use. Please contact us on post@indx.co to inquire.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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
4.0.0 191 4/15/2025
3.3.0.9 183 4/15/2025
3.3.0.8 107 2/28/2025
3.3.0.7 101 11/29/2024
3.3.0.6 113 9/2/2024
3.3.0.5 135 6/18/2024
3.3.0.4 114 6/11/2024

- New MAJOR release with field based indexing, facets, weights, sorting, boosting, and more.