Umbraco.AI.Search 1.0.0-beta1

Prefix Reserved
This is a prerelease version of Umbraco.AI.Search.
dotnet add package Umbraco.AI.Search --version 1.0.0-beta1
                    
NuGet\Install-Package Umbraco.AI.Search -Version 1.0.0-beta1
                    
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="Umbraco.AI.Search" Version="1.0.0-beta1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Umbraco.AI.Search" Version="1.0.0-beta1" />
                    
Directory.Packages.props
<PackageReference Include="Umbraco.AI.Search" />
                    
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 Umbraco.AI.Search --version 1.0.0-beta1
                    
#r "nuget: Umbraco.AI.Search, 1.0.0-beta1"
                    
#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 Umbraco.AI.Search@1.0.0-beta1
                    
#: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=Umbraco.AI.Search&version=1.0.0-beta1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Umbraco.AI.Search&version=1.0.0-beta1&prerelease
                    
Install as a Cake Tool

Umbraco.AI.Search

AI-powered semantic vector search for Umbraco CMS content and media. Built on Umbraco.Cms.Search and Umbraco.AI's embedding capabilities, it registers as a search provider alongside Examine and other CMS Search providers.

Features

  • Semantic Search - Find content by meaning, not just keywords ("audio shows" finds Podcasts)
  • SQL Server 2025+ Native Vectors - Automatic VECTOR_DISTANCE() with brute-force fallback for older versions
  • CMS Search Provider - Registers as an IIndexer/ISearcher via Umbraco.Cms.Search, works alongside Examine
  • Content & Media Indexing - Indexes both document and media content on publish
  • Text Chunking - Configurable chunking with overlap for long documents
  • MinScore Filtering - Filters irrelevant results below a configurable similarity threshold
  • Agent Tool - Semantic search tool for AI agents with text query and document similarity modes
  • Custom Vector Store - Implement IAIVectorStore for alternative storage backends

Monorepo Context

This package is part of the Umbraco.AI monorepo. For local development, see the monorepo setup instructions in the root README.

Installation

dotnet add package Umbraco.AI.Search

This meta-package includes all required components. For more control, install individual packages:

Package Description
Umbraco.AI.Search.Core Domain models, services, indexer, searcher, tools
Umbraco.AI.Search.Db Shared EF Core DbContext and base vector store
Umbraco.AI.Search.Db.SqlServer SQL Server migrations + native VECTOR_DISTANCE override
Umbraco.AI.Search.Db.Sqlite SQLite migrations

Requirements

  • Umbraco CMS 17.0.0+
  • Umbraco.Cms.Search 1.0.0+
  • Umbraco.AI 1.0.0+
  • .NET 10.0
  • An embedding-capable AI provider (e.g. Umbraco.AI.OpenAI with text-embedding-3-small)

Configuration

{
    "Umbraco": {
        "AI": {
            "Search": {
                "ChunkSize": 512,
                "ChunkOverlap": 50,
                "DefaultTopK": 100,
                "MinScore": 0.3
            }
        }
    }
}
Option Default Description
ChunkSize 512 Maximum tokens per text chunk
ChunkOverlap 50 Token overlap between consecutive chunks
DefaultTopK 100 Max candidates from vector similarity search
MinScore 0.3 Minimum cosine similarity score (0.0-1.0) to include a result

Known Issues

AddSearchCore() ordering with site code

This package calls builder.AddSearchCore() during its Composer if no other package has already registered search core services. If your site code or another package also calls AddSearchCore(), it must do so before this package's Composer runs — otherwise AddSearchCore() will be called twice, which can result in duplicate service registrations because it is not idempotent in Umbraco.Cms.Search 1.0.0-beta.2.

Workaround: If you need to call AddSearchCore() in your own Composer, ensure it runs before UmbracoAISearchComposer using [ComposeBefore]. Alternatively, let this package handle it automatically.

Fix: umbraco/Umbraco.Cms.Search#109 makes AddSearchCore() idempotent. Once a new version of Umbraco.Cms.Search is released with this fix, calling order will no longer matter.

Documentation

License

This project is licensed under the MIT License. See LICENSE.md for details.

There are no supported framework assets in this 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
1.0.0-beta1 45 3/27/2026