IndxSearchLib 4.0.0-rc03
dotnet add package IndxSearchLib --version 4.0.0-rc03
NuGet\Install-Package IndxSearchLib -Version 4.0.0-rc03
<PackageReference Include="IndxSearchLib" Version="4.0.0-rc03" />
<PackageVersion Include="IndxSearchLib" Version="4.0.0-rc03" />
<PackageReference Include="IndxSearchLib" />
paket add IndxSearchLib --version 4.0.0-rc03
#r "nuget: IndxSearchLib, 4.0.0-rc03"
#addin nuget:?package=IndxSearchLib&version=4.0.0-rc03&prerelease
#tool nuget:?package=IndxSearchLib&version=4.0.0-rc03&prerelease
IndxSearchLib
IndxSearchLib Developer Kit v4.0.0-RC
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.
V4 JSON mode (NEW)
- Built in JSON parsing and analysis
- 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
- Pattern recognition searching across keywords
- Real-time, instant search as you type
- Smart 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 October 31st, 2025. To extend the license, please 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 SearchEngine = 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")
};
SearchEngine.Insert(data);
Index
SearchEngine.Index();
while (SearchEngine.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);
Search
var result = SearchEngine.Search(query);
List results
foreach (var record in result.SearchRecords)
{
Console.Write(record.IndexedText);
Console.WriteLine($" ({record.Score})");
}
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.
Licensing
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.
//project.csproj
<ItemGroup>
<None Include="indx.license">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
Commercial use
Indx has a licensing fee for commercial use. Please contact us on post@indx.co to inquire.
Product | Versions 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. |
-
net9.0
- CommunityToolkit.HighPerformance (>= 8.4.0)
- Microsoft.Extensions.Logging (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
- Newtonsoft.Json (>= 13.0.3)
- NLog.Extensions.Logging (>= 5.3.14)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Release Candidate. Minor bug fix on boosting.