From b552ccb885716d6bece73e621c373a9db2b5f625 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Fri, 5 Apr 2024 17:42:08 +0200 Subject: [PATCH] Rename Examine based entity search service (#15991) * Rename Examine based entity search service * Add a few comments to make it easier to tell the "indexed" search service from the "regular" one. --- .../Item/SearchDocumentItemController.cs | 8 ++++---- .../Media/Item/SearchMediaItemController.cs | 8 ++++---- .../Member/Item/SearchMemberItemController.cs | 8 ++++---- .../Services/IEntitySearchService.cs | 3 +++ .../Services/IExamineEntitySearchService.cs | 9 --------- .../Services/IIndexedEntitySearchService.cs | 16 ++++++++++++++++ .../UmbracoBuilder.Services.cs | 2 +- ...hService.cs => IndexedEntitySearchService.cs} | 4 ++-- 8 files changed, 34 insertions(+), 24 deletions(-) delete mode 100644 src/Umbraco.Core/Services/IExamineEntitySearchService.cs create mode 100644 src/Umbraco.Core/Services/IIndexedEntitySearchService.cs rename src/Umbraco.Infrastructure/Services/Implement/{ExamineEntitySearchService.cs => IndexedEntitySearchService.cs} (94%) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/SearchDocumentItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/SearchDocumentItemController.cs index bd39db19c41b..9866ec169187 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/SearchDocumentItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/Item/SearchDocumentItemController.cs @@ -12,12 +12,12 @@ namespace Umbraco.Cms.Api.Management.Controllers.Document.Item; [ApiVersion("1.0")] public class SearchDocumentItemController : DocumentItemControllerBase { - private readonly IExamineEntitySearchService _examineEntitySearchService; + private readonly IIndexedEntitySearchService _indexedEntitySearchService; private readonly IDocumentPresentationFactory _documentPresentationFactory; - public SearchDocumentItemController(IExamineEntitySearchService examineEntitySearchService, IDocumentPresentationFactory documentPresentationFactory) + public SearchDocumentItemController(IIndexedEntitySearchService indexedEntitySearchService, IDocumentPresentationFactory documentPresentationFactory) { - _examineEntitySearchService = examineEntitySearchService; + _indexedEntitySearchService = indexedEntitySearchService; _documentPresentationFactory = documentPresentationFactory; } @@ -26,7 +26,7 @@ public SearchDocumentItemController(IExamineEntitySearchService examineEntitySea [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] public async Task Search(string query, int skip = 0, int take = 100) { - PagedModel searchResult = _examineEntitySearchService.Search(UmbracoObjectTypes.Document, query, skip, take); + PagedModel searchResult = _indexedEntitySearchService.Search(UmbracoObjectTypes.Document, query, skip, take); var result = new PagedModel { Items = searchResult.Items.OfType().Select(_documentPresentationFactory.CreateItemResponseModel), diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/SearchMediaItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/SearchMediaItemController.cs index 67bb4f5c0155..07dfd84e5cb3 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/SearchMediaItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Media/Item/SearchMediaItemController.cs @@ -12,12 +12,12 @@ namespace Umbraco.Cms.Api.Management.Controllers.Media.Item; [ApiVersion("1.0")] public class SearchMediaItemController : MediaItemControllerBase { - private readonly IExamineEntitySearchService _examineEntitySearchService; + private readonly IIndexedEntitySearchService _indexedEntitySearchService; private readonly IMediaPresentationFactory _mediaPresentationFactory; - public SearchMediaItemController(IExamineEntitySearchService examineEntitySearchService, IMediaPresentationFactory mediaPresentationFactory) + public SearchMediaItemController(IIndexedEntitySearchService indexedEntitySearchService, IMediaPresentationFactory mediaPresentationFactory) { - _examineEntitySearchService = examineEntitySearchService; + _indexedEntitySearchService = indexedEntitySearchService; _mediaPresentationFactory = mediaPresentationFactory; } @@ -26,7 +26,7 @@ public SearchMediaItemController(IExamineEntitySearchService examineEntitySearch [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] public async Task Search(string query, int skip = 0, int take = 100) { - PagedModel searchResult = _examineEntitySearchService.Search(UmbracoObjectTypes.Media, query, skip, take); + PagedModel searchResult = _indexedEntitySearchService.Search(UmbracoObjectTypes.Media, query, skip, take); var result = new PagedModel { Items = searchResult.Items.OfType().Select(_mediaPresentationFactory.CreateItemResponseModel), diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/SearchMemberItemController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/SearchMemberItemController.cs index df6a9325f7db..2e6eb4f7399c 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/SearchMemberItemController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Member/Item/SearchMemberItemController.cs @@ -12,12 +12,12 @@ namespace Umbraco.Cms.Api.Management.Controllers.Member.Item; [ApiVersion("1.0")] public class SearchMemberItemController : MemberItemControllerBase { - private readonly IExamineEntitySearchService _examineEntitySearchService; + private readonly IIndexedEntitySearchService _indexedEntitySearchService; private readonly IMemberPresentationFactory _memberPresentationFactory; - public SearchMemberItemController(IExamineEntitySearchService examineEntitySearchService, IMemberPresentationFactory memberPresentationFactory) + public SearchMemberItemController(IIndexedEntitySearchService indexedEntitySearchService, IMemberPresentationFactory memberPresentationFactory) { - _examineEntitySearchService = examineEntitySearchService; + _indexedEntitySearchService = indexedEntitySearchService; _memberPresentationFactory = memberPresentationFactory; } @@ -26,7 +26,7 @@ public SearchMemberItemController(IExamineEntitySearchService examineEntitySearc [ProducesResponseType(typeof(PagedModel), StatusCodes.Status200OK)] public async Task Search(string query, int skip = 0, int take = 100) { - PagedModel searchResult = _examineEntitySearchService.Search(UmbracoObjectTypes.Member, query, skip, take); + PagedModel searchResult = _indexedEntitySearchService.Search(UmbracoObjectTypes.Member, query, skip, take); var result = new PagedModel { Items = searchResult.Items.OfType().Select(_memberPresentationFactory.CreateItemResponseModel), diff --git a/src/Umbraco.Core/Services/IEntitySearchService.cs b/src/Umbraco.Core/Services/IEntitySearchService.cs index b10dbbaa4da7..1bb7db569ab9 100644 --- a/src/Umbraco.Core/Services/IEntitySearchService.cs +++ b/src/Umbraco.Core/Services/IEntitySearchService.cs @@ -3,6 +3,9 @@ namespace Umbraco.Cms.Core.Services; +/// +/// Performs entity search directly against the database. +/// public interface IEntitySearchService { PagedModel Search(UmbracoObjectTypes objectType, string query, int skip = 0, int take = 100); diff --git a/src/Umbraco.Core/Services/IExamineEntitySearchService.cs b/src/Umbraco.Core/Services/IExamineEntitySearchService.cs deleted file mode 100644 index 6d2ec5403dd7..000000000000 --- a/src/Umbraco.Core/Services/IExamineEntitySearchService.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Entities; - -namespace Umbraco.Cms.Core.Services; - -public interface IExamineEntitySearchService -{ - PagedModel Search(UmbracoObjectTypes objectType, string query, int skip = 0, int take = 100, bool ignoreUserStartNodes = false); -} diff --git a/src/Umbraco.Core/Services/IIndexedEntitySearchService.cs b/src/Umbraco.Core/Services/IIndexedEntitySearchService.cs new file mode 100644 index 000000000000..047f5e7e2fa4 --- /dev/null +++ b/src/Umbraco.Core/Services/IIndexedEntitySearchService.cs @@ -0,0 +1,16 @@ +using Umbraco.Cms.Core.Models; +using Umbraco.Cms.Core.Models.Entities; + +namespace Umbraco.Cms.Core.Services; + +/// +/// Performs entity search against search indexes. +/// +/// +/// Note that this service only supports entity types that are included in search indexes. +/// By default this means documents, media and members. +/// +public interface IIndexedEntitySearchService +{ + PagedModel Search(UmbracoObjectTypes objectType, string query, int skip = 0, int take = 100, bool ignoreUserStartNodes = false); +} diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs index 33149240fb8e..c3af907799b6 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs @@ -63,7 +63,7 @@ internal static IUmbracoBuilder AddServices(this IUmbracoBuilder builder) builder.Services.AddUnique(); builder.Services.AddUnique(); builder.Services.AddUnique(); - builder.Services.AddUnique(); + builder.Services.AddUnique(); return builder; } diff --git a/src/Umbraco.Infrastructure/Services/Implement/ExamineEntitySearchService.cs b/src/Umbraco.Infrastructure/Services/Implement/IndexedEntitySearchService.cs similarity index 94% rename from src/Umbraco.Infrastructure/Services/Implement/ExamineEntitySearchService.cs rename to src/Umbraco.Infrastructure/Services/Implement/IndexedEntitySearchService.cs index dbdd6132a8ca..0055df6244c6 100644 --- a/src/Umbraco.Infrastructure/Services/Implement/ExamineEntitySearchService.cs +++ b/src/Umbraco.Infrastructure/Services/Implement/IndexedEntitySearchService.cs @@ -8,12 +8,12 @@ namespace Umbraco.Cms.Infrastructure.Services.Implement; -internal sealed class ExamineEntitySearchService : IExamineEntitySearchService +internal sealed class IndexedEntitySearchService : IIndexedEntitySearchService { private readonly IBackOfficeExamineSearcher _backOfficeExamineSearcher; private readonly IEntityService _entityService; - public ExamineEntitySearchService(IBackOfficeExamineSearcher backOfficeExamineSearcher, IEntityService entityService) + public IndexedEntitySearchService(IBackOfficeExamineSearcher backOfficeExamineSearcher, IEntityService entityService) { _backOfficeExamineSearcher = backOfficeExamineSearcher; _entityService = entityService;