Make it possible to disable Examine indexes by composition (#18988)
This commit is contained in:
@@ -35,9 +35,7 @@ public static partial class UmbracoBuilderExtensions
|
||||
.AddRecurringBackgroundJobs()
|
||||
.AddUmbracoHybridCache()
|
||||
.AddDistributedCache()
|
||||
.AddCoreNotifications()
|
||||
.AddExamine()
|
||||
.AddExamineIndexes();
|
||||
.AddCoreNotifications();
|
||||
|
||||
public static IUmbracoBuilder AddBackOfficeCore(this IUmbracoBuilder builder)
|
||||
{
|
||||
|
||||
14
src/Umbraco.Examine.Lucene/AddExamineComposer.cs
Normal file
14
src/Umbraco.Examine.Lucene/AddExamineComposer.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using Umbraco.Cms.Core.Composing;
|
||||
using Umbraco.Cms.Core.DependencyInjection;
|
||||
using Umbraco.Cms.Infrastructure.DependencyInjection;
|
||||
using Umbraco.Cms.Infrastructure.Examine.DependencyInjection;
|
||||
|
||||
namespace Umbraco.Cms.Infrastructure.Examine;
|
||||
|
||||
public sealed class AddExamineComposer : IComposer
|
||||
{
|
||||
public void Compose(IUmbracoBuilder builder)
|
||||
=> builder
|
||||
.AddExamine()
|
||||
.AddExamineIndexes();
|
||||
}
|
||||
@@ -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