Make it possible to disable Examine indexes by composition (#18988)
This commit is contained in:
@@ -186,7 +186,8 @@ public static partial class UmbracoBuilderExtensions
|
||||
builder.Services.AddTransient<IUserInviteSender, EmailUserInviteSender>();
|
||||
builder.Services.AddTransient<IUserForgotPasswordSender, EmailUserForgotPasswordSender>();
|
||||
|
||||
builder.Services.AddSingleton<IExamineManager, ExamineManager>();
|
||||
builder.Services.AddSingleton<IExamineManager, NoopExamineManager>();
|
||||
builder.Services.AddSingleton<IIndexRebuilder, NoopIndexRebuilder>();
|
||||
|
||||
builder.Services.AddScoped<ITagQuery, TagQuery>();
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Examine;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Umbraco.Cms.Core.DeliveryApi;
|
||||
@@ -21,6 +22,8 @@ public static partial class UmbracoBuilderExtensions
|
||||
{
|
||||
public static IUmbracoBuilder AddExamine(this IUmbracoBuilder builder)
|
||||
{
|
||||
builder.Services.AddUnique<IExamineManager, ExamineManager>();
|
||||
|
||||
// populators are not a collection: one cannot remove ours, and can only add more
|
||||
// the container can inject IEnumerable<IIndexPopulator> and get them all
|
||||
builder.Services.AddSingleton<IIndexPopulator, MemberIndexPopulator>();
|
||||
|
||||
24
src/Umbraco.Infrastructure/Examine/NoopExamineManager.cs
Normal file
24
src/Umbraco.Infrastructure/Examine/NoopExamineManager.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Examine;
|
||||
|
||||
namespace Umbraco.Cms.Infrastructure.Examine;
|
||||
|
||||
internal sealed class NoopExamineManager : IExamineManager
|
||||
{
|
||||
public void Dispose() {}
|
||||
|
||||
public bool TryGetIndex(string indexName, out IIndex index)
|
||||
{
|
||||
index = null!;
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool TryGetSearcher(string searcherName, out ISearcher searcher)
|
||||
{
|
||||
searcher = null!;
|
||||
return false;
|
||||
}
|
||||
|
||||
public IEnumerable<IIndex> Indexes => Array.Empty<IIndex>();
|
||||
|
||||
public IEnumerable<ISearcher> RegisteredSearchers => Array.Empty<ISearcher>();
|
||||
}
|
||||
10
src/Umbraco.Infrastructure/Examine/NoopIndexRebuilder.cs
Normal file
10
src/Umbraco.Infrastructure/Examine/NoopIndexRebuilder.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace Umbraco.Cms.Infrastructure.Examine;
|
||||
|
||||
internal sealed class NoopIndexRebuilder : IIndexRebuilder
|
||||
{
|
||||
public bool CanRebuild(string indexName) => false;
|
||||
|
||||
public void RebuildIndex(string indexName, TimeSpan? delay = null, bool useBackgroundThread = true) {}
|
||||
|
||||
public void RebuildIndexes(bool onlyEmptyIndexes, TimeSpan? delay = null, bool useBackgroundThread = true) {}
|
||||
}
|
||||
Reference in New Issue
Block a user