Verbex 0.1.3

dotnet add package Verbex --version 0.1.3
                    
NuGet\Install-Package Verbex -Version 0.1.3
                    
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="Verbex" Version="0.1.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Verbex" Version="0.1.3" />
                    
Directory.Packages.props
<PackageReference Include="Verbex" />
                    
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 Verbex --version 0.1.3
                    
#r "nuget: Verbex, 0.1.3"
                    
#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.
#:package Verbex@0.1.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Verbex&version=0.1.3
                    
Install as a Cake Addin
#tool nuget:?package=Verbex&version=0.1.3
                    
Install as a Cake Tool

<div align="center"> <img src="https://raw.githubusercontent.com/jchristn/verbex/main/assets/logo.png" alt="Verbex Logo" width="128" height="128">

Verbex

NuGet .NET License

A high-performance inverted index library for .NET 8.0 with SQLite storage and full-text search.

Verbex is in ALPHA - we welcome your feedback, improvements, and bugfixes </div>

Screenshots

<div align="center"> <img src="https://raw.githubusercontent.com/jchristn/verbex/main/assets/screenshot1.png" alt="Screenshot 1" width="800"> </div>

<div align="center"> <img src="https://raw.githubusercontent.com/jchristn/verbex/main/assets/screenshot2.png" alt="Screenshot 2" width="800"> </div>

<div align="center"> <img src="https://raw.githubusercontent.com/jchristn/verbex/main/assets/screenshot3.png" alt="Screenshot 3" width="800"> </div>

Quick Start

Get up and running in seconds with Docker:

# Clone and start
git clone https://github.com/jchristn/verbex.git
cd verbex/docker
docker compose up -d

# Server available at http://localhost:8080
# Dashboard available at http://localhost:8200

For detailed Docker configuration, see DOCKER.md.

From Source

git clone https://github.com/jchristn/verbex.git
cd verbex
dotnet build
dotnet run --project src/Verbex.Server    # Start REST API
dotnet run --project src/TestConsole      # Interactive shell

Library Usage

using Verbex;

// Create index
var config = new VerbexConfiguration { StorageMode = StorageMode.InMemory };
using var index = new InvertedIndex(config);

// Add documents
await index.AddDocumentAsync(Guid.NewGuid(), "The quick brown fox", "doc1.txt");
await index.AddDocumentAsync(Guid.NewGuid(), "Machine learning algorithms", "doc2.txt");

// Search
var results = await index.SearchAsync("fox machine");
foreach (var result in results)
    Console.WriteLine($"{result.DocumentId}: {result.Score:F4}");

Key Features

  • Flexible Storage: In-memory SQLite or persistent on-disk SQLite
  • TF-IDF Scoring: Relevance-ranked search results
  • Text Processing: Lemmatization, stop word removal, token filtering
  • Metadata Filtering: Labels and tags for document organization
  • Thread-Safe: Optimized for concurrent read-heavy workloads
  • REST API: Production-ready HTTP server with authentication
  • CLI Tool: Professional command-line interface (vbx)
  • Web Dashboard: React-based management UI

Components

Component Description
Verbex Core library (NuGet package)
Verbex.Server REST API server
VerbexCli Command-line interface
TestConsole Interactive testing shell
Dashboard React web interface

Storage Modes

// In-Memory (fast, non-persistent)
var config = VerbexConfiguration.CreateInMemory();

// On-Disk (persistent)
var config = VerbexConfiguration.CreateOnDisk(@"C:\VerbexData");

Text Processing

var config = new VerbexConfiguration
{
    StorageMode = StorageMode.OnDisk,
    StorageDirectory = @"C:\Data\Index",
    MinTokenLength = 3,
    MaxTokenLength = 20,
    Lemmatizer = new BasicLemmatizer(),
    StopWordRemover = new BasicStopWordRemover()
};

CLI Example

vbx index create docs --storage disk --lemmatizer --stopwords
vbx doc add readme --content "Getting started with Verbex"
vbx search "getting started" --limit 10

REST API Example

# Authenticate
curl -X POST http://localhost:8080/v1.0/auth/login \
  -H "Content-Type: application/json" \
  -d '{"Username": "admin", "Password": "password"}'

# Search
curl -X POST http://localhost:8080/v1.0/indices/myindex/search \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"Query": "machine learning"}'

Documentation

Configuration

Property Default Description
StorageMode InMemory InMemory or OnDisk
StorageDirectory null SQLite database location
DefaultMaxSearchResults 100 Search result limit
MinTokenLength 0 Minimum token length (0=disabled)
MaxTokenLength 0 Maximum token length (0=disabled)
Lemmatizer null Word lemmatization processor
StopWordRemover null Stop word filter

Support

Contributing

git clone https://github.com/jchristn/verbex.git
cd verbex
dotnet build
dotnet run --project src/Test  # Run test suite

License

MIT License - free for commercial and personal use.

Attribution

Logo icon by Freepik from Flaticon

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.  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 is compatible.  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
0.1.3 171 12/25/2025
0.1.1 264 12/18/2025
0.1.0 154 12/13/2025

Verbex is in ALPHA.