SplatDev.Umbraco.Examine
2.0.5
dotnet add package SplatDev.Umbraco.Examine --version 2.0.5
NuGet\Install-Package SplatDev.Umbraco.Examine -Version 2.0.5
<PackageReference Include="SplatDev.Umbraco.Examine" Version="2.0.5" />
<PackageVersion Include="SplatDev.Umbraco.Examine" Version="2.0.5" />
<PackageReference Include="SplatDev.Umbraco.Examine" />
paket add SplatDev.Umbraco.Examine --version 2.0.5
#r "nuget: SplatDev.Umbraco.Examine, 2.0.5"
#:package SplatDev.Umbraco.Examine@2.0.5
#addin nuget:?package=SplatDev.Umbraco.Examine&version=2.0.5
#tool nuget:?package=SplatDev.Umbraco.Examine&version=2.0.5
SplatDev.Umbraco.Examine
Enhanced Examine/Lucene search library for Umbraco — extends the built-in Examine search engine with fuzzy matching, boosted terms, a zero-stop-word analyzer, and strongly-typed search results with built-in pagination.
Compatibility
| .NET | Umbraco | Package Version |
|---|---|---|
| 8.0 | 13.12.0 | 1.0.0 |
| 10.0 | 17.3.4 | 1.0.0 |
Installation
dotnet add package SplatDev.Umbraco.Examine
Configuration
Register the custom analyzer
using SplatDev.Umbraco.Examine.Analyzers;
using Examine;
// Use NoStopWordsAnalyzer in your Examine index
var index = new ExamineIndex(
name: "ExternalIndex",
fieldDefinitions: new FieldDefinitionCollection(),
analyzer: new NoStopWordsAnalyzer(),
validator: new ContentValueSetValidator(...),
luceneDirectory: new Lucene.Net.Store.FSDirectory(...));
Usage
Basic search with ExamineExtensionsPlus
using SplatDev.Umbraco.Examine.Extensions;
using Examine;
using Umbraco.Cms.Core;
// Get the external index
if (_examineManager.TryGetIndex("ExternalIndex", out var index))
{
var searcher = index.Searcher;
// Simple search
var results = searcher.Search<SearchModel>(
query: "development",
page: 1,
pageSize: 10);
Console.WriteLine($"Found {results.TotalResults} results");
foreach (var item in results.Items)
{
Console.WriteLine($"- {item.Name}: {item.Description}");
}
}
Fuzzy matching
// Enable fuzzy search to catch typos and near-matches
var fuzzyResults = searcher.Search<SearchModel>(
query: "developmint", // typo!
page: 1,
pageSize: 10,
fuzzy: 0.8f); // 0.0 - 1.0 fuzziness factor
Console.WriteLine($"Fuzzy matched {fuzzyResults.TotalResults} items");
Boosted terms
Boost specific fields to influence result ranking:
var boosted = searcher.Search<SearchModel>(
query: "umbraco plugin",
page: 1,
pageSize: 10,
boostFields: new Dictionary<string, float>
{
{ "nodeName", 2.0f }, // Title matches weigh double
{ "bodyContent", 1.5f }, // Body matches weigh 1.5x
{ "metaDescription", 0.5f } // Meta desc matches at half weight
});
Paged results
// All search methods return PagedResults<T>
var paged = searcher.Search<SearchModel>("news", 1, 20);
Console.WriteLine($"Page {paged.Page} of {paged.GetTotalPages()}");
Console.WriteLine($"Showing {paged.Items.Count} of {paged.TotalResults}");
// Navigate pages
if (paged.HasNextPage)
{
var next = searcher.Search<SearchModel>("news", paged.Page + 1, 20);
}
SearchModel
public class SearchModel : ISearchModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Url { get; set; }
public float Score { get; set; }
}
Features
ExamineExtensionsPlus— Static helper class withSearch<T>()genericsNoStopWordsAnalyzer— Lucene analyzer with zero stop words (no "a", "the", "and" removal)- Fuzzy matching with configurable fuzziness factor (0.0 to 1.0)
- Boosted term support for weighted field searches
PagedResults<T>— Strongly-typed paginated result sets viaSplatDev.Umbraco.PaginationSearchModel— Standardized search result model- Full async examination via native Umbraco Examine APIs
Search options in the SplatDev suite
Both this package and SplatDev.Search.* coexist in the SplatDev ecosystem. They serve different purposes and can run together in the same host.
| Use case | Choose |
|---|---|
| Index Umbraco content nodes for backoffice/frontend search | This package — in-process Lucene, tightly integrated with Umbraco's content pipeline |
| Index domain data (products, tickets, cross-site aggregates) | SplatDev.Search.* — out-of-process (Elasticsearch / OpenSearch / Meilisearch) |
| Multi-tenant search across many Umbraco sites from one index | SplatDev.Search.* — Examine is per-instance |
| Zero-ops single-site search on Umbraco content | This package — no external service to provision |
Dependencies
| Package | Purpose |
|---|---|
Umbraco.Cms.Core (v13.12.0 / v17.3.4) |
Umbraco core + Examine |
Umbraco.Cms.Infrastructure (v13.12.0 / v17.3.4) |
Examine infrastructure |
Umbraco.Cms.Examine (v13.12.0 / v17.3.4) |
Examine index/search APIs |
SplatDev.Umbraco.Pagination |
PagedResults<T> and pagination utilities |
Target Frameworks
net8.0— for Umbraco 13 applications (v13.12.0)net10.0— for Umbraco 17 applications (v17.3.4)
SplatDev.Umbraco.Examine — part of the SplatDev.Umbraco.Plugins suite. Licensed under MIT. © SplatDev Ltda.
Changelog
2.0.5 — 2026-08-24
Removes a dashboard screenshot that showed an error toast. It was captured against a site where this plugin's API was unreachable, so it advertised a broken dashboard. No screenshot is better than a misleading one; a replacement will be taken against a working install.
2.0.4 — 2026-08-24
Package metadata only: the listing now carries an icon and search tags, and the project and repository links point at the organisation that actually hosts this code. No code changes.
2.0.2 — 2026-08-22
- This package's README now reaches NuGet. The publish workflow discovered packages by a list of name patterns, and this one matched none of them, so it was never built or pushed by CI — the version on NuGet was placed there by hand before the README was wired up, and no release could refresh it. Discovery is now by prefix, so the package ships whenever the repo is tagged.
| Product | Versions 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 was computed. 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. |
-
net10.0
- SplatDev.Umbraco.Pagination (>= 2.0.5)
- Umbraco.Cms.Api.Management (>= 17.3.4)
- Umbraco.Cms.Core (>= 17.3.4)
- Umbraco.Cms.Infrastructure (>= 17.3.4)
- Umbraco.Cms.Web.Common (>= 17.3.4)
- Umbraco.Cms.Web.Website (>= 17.3.4)
-
net8.0
- SplatDev.Umbraco.Pagination (>= 2.0.5)
- Umbraco.Cms.Core (>= 13.12.0)
- Umbraco.Cms.Infrastructure (>= 13.12.0)
- Umbraco.Cms.Web.BackOffice (>= 13.12.0)
- Umbraco.Cms.Web.Common (>= 13.12.0)
- Umbraco.Cms.Web.Website (>= 13.12.0)
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 |
|---|---|---|
| 2.0.5 | 42 | 8/24/2026 |