Skip to content

Commit

Permalink
Elasticsearch feature ✨💥 (Lombiq Technologies: OSOE-83) (#11052)
Browse files Browse the repository at this point in the history
  • Loading branch information
Skrypt authored Sep 20, 2022
1 parent 81fa0fb commit 87b4271
Show file tree
Hide file tree
Showing 333 changed files with 7,653 additions and 573 deletions.
34 changes: 31 additions & 3 deletions OrchardCore.sln
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Layers", "src\O
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Lists", "src\OrchardCore.Modules\OrchardCore.Lists\OrchardCore.Lists.csproj", "{ED165AA1-D202-405A-8EC6-5DD0E0B77636}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Lucene", "src\OrchardCore.Modules\OrchardCore.Lucene\OrchardCore.Lucene.csproj", "{245E865F-AC80-4963-8595-F380C458F99E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Search.Lucene", "src\OrchardCore.Modules\OrchardCore.Search.Lucene\OrchardCore.Search.Lucene.csproj", "{245E865F-AC80-4963-8595-F380C458F99E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Markdown", "src\OrchardCore.Modules\OrchardCore.Markdown\OrchardCore.Markdown.csproj", "{DA02314F-7BF6-47C5-B11E-196F13BDDB77}"
EndProject
Expand Down Expand Up @@ -176,11 +176,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Queries", "src\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Liquid.Abstractions", "src\OrchardCore\OrchardCore.Liquid.Abstractions\OrchardCore.Liquid.Abstractions.csproj", "{2DF44392-8882-46B1-8061-61DDBCA358BD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Lucene.Abstractions", "src\OrchardCore\OrchardCore.Lucene.Abstractions\OrchardCore.Lucene.Abstractions.csproj", "{78F13261-B843-4590-8DD5-E9491874D0CD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Search.Lucene.Abstractions", "src\OrchardCore\OrchardCore.Search.Lucene.Abstractions\OrchardCore.Search.Lucene.Abstractions.csproj", "{78F13261-B843-4590-8DD5-E9491874D0CD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Liquid", "src\OrchardCore.Modules\OrchardCore.Liquid\OrchardCore.Liquid.csproj", "{F8973BF9-4F56-4A59-9153-72BEDB6AB269}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Lucene.Core", "src\OrchardCore\OrchardCore.Lucene.Core\OrchardCore.Lucene.Core.csproj", "{F621B369-15FD-4923-98AD-17740C24CD5C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Search.Lucene.Core", "src\OrchardCore\OrchardCore.Search.Lucene.Core\OrchardCore.Search.Lucene.Core.csproj", "{F621B369-15FD-4923-98AD-17740C24CD5C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Queries.Abstractions", "src\OrchardCore\OrchardCore.Queries.Abstractions\OrchardCore.Queries.Abstractions.csproj", "{AEB44D2A-1493-4550-8B13-EB611B1FB12C}"
EndProject
Expand Down Expand Up @@ -404,6 +404,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Roles.Core", "s
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.AutoSetup", "src\OrchardCore.Modules\OrchardCore.AutoSetup\OrchardCore.AutoSetup.csproj", "{1E76C17C-099A-4E6D-BC26-E93CBA4D0BD6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Search.Elasticsearch.Abstractions", "src\OrchardCore\OrchardCore.Search.Elasticsearch.Abstractions\OrchardCore.Search.Elasticsearch.Abstractions.csproj", "{E6A90BFD-AB5C-4AED-A5AB-799136AB1521}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Search.Elasticsearch.Core", "src\OrchardCore\OrchardCore.Search.Elasticsearch.Core\OrchardCore.Search.Elasticsearch.Core.csproj", "{848C919B-6829-4758-9E59-51F13D25ABBC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Search.Elasticsearch", "src\OrchardCore.Modules\OrchardCore.Search.Elasticsearch\OrchardCore.Search.Elasticsearch.csproj", "{B6A54EA8-F285-436D-8257-6F6EDE4C3339}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Data.YesSql", "src\OrchardCore\OrchardCore.Data.YesSql\OrchardCore.Data.YesSql.csproj", "{F06E4E20-3675-4BA5-AD2D-4538FAB154D5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Data.YesSql.Abstractions", "src\OrchardCore\OrchardCore.Data.YesSql.Abstractions\OrchardCore.Data.YesSql.Abstractions.csproj", "{AB47A65C-7BA9-4CE7-BA73-285EB7A2CEFD}"
Expand Down Expand Up @@ -472,6 +478,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Media.AmazonS3"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.ArchiveLater", "src\OrchardCore.Modules\OrchardCore.ArchiveLater\OrchardCore.ArchiveLater.csproj", "{190C4BEB-C506-4F7F-BDCA-93F3C1C221BC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCore.Search", "src\OrchardCore.Modules\OrchardCore.Search\OrchardCore.Search.csproj", "{7BDF280B-70B7-4AFC-A6F7-B5759DCA2A2C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -1162,6 +1170,18 @@ Global
{1E76C17C-099A-4E6D-BC26-E93CBA4D0BD6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1E76C17C-099A-4E6D-BC26-E93CBA4D0BD6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1E76C17C-099A-4E6D-BC26-E93CBA4D0BD6}.Release|Any CPU.Build.0 = Release|Any CPU
{E6A90BFD-AB5C-4AED-A5AB-799136AB1521}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E6A90BFD-AB5C-4AED-A5AB-799136AB1521}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E6A90BFD-AB5C-4AED-A5AB-799136AB1521}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E6A90BFD-AB5C-4AED-A5AB-799136AB1521}.Release|Any CPU.Build.0 = Release|Any CPU
{848C919B-6829-4758-9E59-51F13D25ABBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{848C919B-6829-4758-9E59-51F13D25ABBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{848C919B-6829-4758-9E59-51F13D25ABBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{848C919B-6829-4758-9E59-51F13D25ABBC}.Release|Any CPU.Build.0 = Release|Any CPU
{B6A54EA8-F285-436D-8257-6F6EDE4C3339}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B6A54EA8-F285-436D-8257-6F6EDE4C3339}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B6A54EA8-F285-436D-8257-6F6EDE4C3339}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B6A54EA8-F285-436D-8257-6F6EDE4C3339}.Release|Any CPU.Build.0 = Release|Any CPU
{F06E4E20-3675-4BA5-AD2D-4538FAB154D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F06E4E20-3675-4BA5-AD2D-4538FAB154D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F06E4E20-3675-4BA5-AD2D-4538FAB154D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -1248,6 +1268,10 @@ Global
{190C4BEB-C506-4F7F-BDCA-93F3C1C221BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{190C4BEB-C506-4F7F-BDCA-93F3C1C221BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{190C4BEB-C506-4F7F-BDCA-93F3C1C221BC}.Release|Any CPU.Build.0 = Release|Any CPU
{7BDF280B-70B7-4AFC-A6F7-B5759DCA2A2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7BDF280B-70B7-4AFC-A6F7-B5759DCA2A2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7BDF280B-70B7-4AFC-A6F7-B5759DCA2A2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7BDF280B-70B7-4AFC-A6F7-B5759DCA2A2C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -1438,6 +1462,9 @@ Global
{1D0144D0-9E6D-441B-A393-B62F6DC8E97E} = {90030E85-0C4F-456F-B879-443E8A3F220D}
{15E0499A-815D-4E98-B1E4-1C9D7B3D1461} = {F23AC6C2-DE44-4699-999D-3C478EF3D691}
{1E76C17C-099A-4E6D-BC26-E93CBA4D0BD6} = {A066395F-6F73-45DC-B5A6-B4E306110DCE}
{E6A90BFD-AB5C-4AED-A5AB-799136AB1521} = {F23AC6C2-DE44-4699-999D-3C478EF3D691}
{848C919B-6829-4758-9E59-51F13D25ABBC} = {F23AC6C2-DE44-4699-999D-3C478EF3D691}
{B6A54EA8-F285-436D-8257-6F6EDE4C3339} = {90030E85-0C4F-456F-B879-443E8A3F220D}
{F06E4E20-3675-4BA5-AD2D-4538FAB154D5} = {F23AC6C2-DE44-4699-999D-3C478EF3D691}
{AB47A65C-7BA9-4CE7-BA73-285EB7A2CEFD} = {F23AC6C2-DE44-4699-999D-3C478EF3D691}
{442C544F-6587-4FA5-8459-710ED8492AD4} = {F23AC6C2-DE44-4699-999D-3C478EF3D691}
Expand Down Expand Up @@ -1466,6 +1493,7 @@ Global
{38F43FA0-5BA8-4D6B-8F66-C708D590EF76} = {F23AC6C2-DE44-4699-999D-3C478EF3D691}
{FF1C550C-6D30-499A-AF11-68DE7C8B6869} = {90030E85-0C4F-456F-B879-443E8A3F220D}
{190C4BEB-C506-4F7F-BDCA-93F3C1C221BC} = {90030E85-0C4F-456F-B879-443E8A3F220D}
{7BDF280B-70B7-4AFC-A6F7-B5759DCA2A2C} = {90030E85-0C4F-456F-B879-443E8A3F220D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {46A1D25A-78D1-4476-9CBF-25B75E296341}
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ nav:
- Indexing: docs/reference/modules/Indexing/README.md
- SQL Indexing: docs/reference/modules/SQLIndexing/README.md
- Lucene: docs/reference/modules/Lucene/README.md
- Elasticsearch: docs/reference/modules/Elasticsearch/README.md
- Queries: docs/reference/modules/Queries/README.md
- Media:
- Media: docs/reference/modules/Media/README.md
Expand Down
2 changes: 1 addition & 1 deletion src/OrchardCore.Build/Dependencies.props
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
<PackageManagement Include="Moq" Version="4.18.2" />
<PackageManagement Include="ncrontab" Version="3.3.1" />
<PackageManagement Include="Newtonsoft.Json" Version="13.0.1" />
<PackageManagement Include="NEST" Version="7.17.4" />
<PackageManagement Include="NJsonSchema" Version="10.7.2" />
<PackageManagement Include="NLog.Web.AspNetCore" Version="5.1.4" />
<PackageManagement Include="NodaTime" Version="3.1.2" />
Expand All @@ -62,5 +63,4 @@
<PackageManagement Include="YesSql.Filters.Query" Version="3.0.12" />
<PackageManagement Include="ZString" Version="2.4.4" />
</ItemGroup>

</Project>
12 changes: 11 additions & 1 deletion src/OrchardCore.Cms.Web/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,17 @@
// "MaxPagedCount": 500
// }
//},

// Provides Elasticsearch Connection
//"OrchardCore_Elasticsearch": {
// "ConnectionType": "SingleNodeConnectionPool",
// "Url": "http://localhost",
// "Ports": [ 9200 ],
// "Username": "admin",
// "Password": "admin",
// "CloudId": "Orchard_Core_deployment:ZWFzdHVzMi5henVyZS5lbGFzdGljLWNsb3VkLmNvbTo0NDMkNmMxZGQ4YzAzN2=",
// "CertificateFingerprint": "75:21:E7:92:8F:D5:7A:27:06:38:8E:A4:35:FE:F5:17:D7:37:F4:DF:F0:9A:D2:C0:C4:B6:FF:EE:D1:EA:2B:A7",
// "EnableApiVersioningHeader": false
//}
// WARNING: AutoSetup section given as an example for Development only, for Production use "Environment Variables" instead
//"OrchardCore_AutoSetup": {
// "AutoSetupPath": "",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@
"Editor": "Wysiwyg"
},
"GraphQLContentTypePartSettings": {},
"HtmlBodyPartSettings": {},
"ContentIndexSettings": {}
"HtmlBodyPartSettings": {}
}
},
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System.Threading.Tasks;
using System.Threading.Tasks;
using OrchardCore.Alias.Models;
using OrchardCore.Indexing;

Expand All @@ -8,7 +8,7 @@ public class AliasPartIndexHandler : ContentPartIndexHandler<AliasPart>
{
public override Task BuildIndexAsync(AliasPart part, BuildPartIndexContext context)
{
var options = DocumentIndexOptions.Store;
var options = DocumentIndexOptions.Keyword | DocumentIndexOptions.Store;

foreach (var key in context.Keys)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ public override Task BuildIndexAsync(AutoroutePart part, BuildPartIndexContext c
{
var options = context.Settings.ToOptions()
& ~DocumentIndexOptions.Sanitize
& ~DocumentIndexOptions.Analyze
;

foreach (var key in context.Keys)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using OrchardCore.ContentManagement;
using OrchardCore.ContentManagement;

namespace OrchardCore.ContentFields.Fields
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class ContentPickerFieldIndexHandler : ContentFieldIndexHandler<ContentPi
{
public override Task BuildIndexAsync(ContentPickerField field, BuildFieldIndexContext context)
{
var options = DocumentIndexOptions.Store;
var options = DocumentIndexOptions.Keyword | DocumentIndexOptions.Store;

if (field.ContentItemIds.Length > 0)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class LocalizationSetContentPickerFieldIndexHandler : ContentFieldIndexHa
{
public override Task BuildIndexAsync(LocalizationSetContentPickerField field, BuildFieldIndexContext context)
{
var options = DocumentIndexOptions.Store;
var options = DocumentIndexOptions.Keyword | DocumentIndexOptions.Store;

if (field.LocalizationSets.Length > 0)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class UserPickerFieldIndexHandler : ContentFieldIndexHandler<UserPickerFi
{
public override Task BuildIndexAsync(UserPickerField field, BuildFieldIndexContext context)
{
var options = DocumentIndexOptions.Store;
var options = DocumentIndexOptions.Keyword | DocumentIndexOptions.Store;

if (field.UserIds.Length > 0)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class LocalizationPartIndexHandler : ContentPartIndexHandler<Localization
{
public override Task BuildIndexAsync(LocalizationPart part, BuildPartIndexContext context)
{
var options = DocumentIndexOptions.Store;
var options = DocumentIndexOptions.Keyword | DocumentIndexOptions.Store;

foreach (var key in context.Keys)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
using System;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using OrchardCore.ContentManagement.Metadata.Records;
using OrchardCore.Recipes.Events;
using OrchardCore.Recipes.Models;

namespace OrchardCore.ContentTypes
{
/// <summary>
/// This handler provides backward compatibility with ContentIndexSettings that have been migrated to LuceneContentIndexSettings.
/// </summary>
public class LuceneRecipeEventHandler : IRecipeEventHandler
{
public RecipeExecutionContext Context { get; private set; }

public Task RecipeStepExecutedAsync(RecipeExecutionContext context) => Task.CompletedTask;

public Task ExecutionFailedAsync(string executionId, RecipeDescriptor descriptor) => Task.CompletedTask;

public Task RecipeExecutedAsync(string executionId, RecipeDescriptor descriptor) => Task.CompletedTask;

public Task RecipeExecutingAsync(string executionId, RecipeDescriptor descriptor) => Task.CompletedTask;

public Task RecipeStepExecutingAsync(RecipeExecutionContext context)
{
if (context.Name == "ReplaceContentDefinition" || context.Name == "ContentDefinition")
{
var step = context.Step.ToObject<ContentDefinitionStepModel>();

foreach (var contentType in step.ContentTypes)
{
foreach (var partDefinition in contentType.ContentTypePartDefinitionRecords)
{
if (partDefinition.Settings != null)
{
if (partDefinition.Settings.TryGetValue("ContentIndexSettings", out var existingPartSettings) &&
!partDefinition.Settings.ContainsKey("LuceneContentIndexSettings"))
{
partDefinition.Settings.Add(new JProperty("LuceneContentIndexSettings", existingPartSettings));
}

partDefinition.Settings.Remove("ContentIndexSettings");
}
}
}

foreach (var partDefinition in step.ContentParts)
{
if (partDefinition.Settings != null)
{
if (partDefinition.Settings.TryGetValue("ContentIndexSettings", out var existingPartSettings) &&
!partDefinition.Settings.ContainsKey("LuceneContentIndexSettings"))
{
partDefinition.Settings.Add(new JProperty("LuceneContentIndexSettings", existingPartSettings));
}

partDefinition.Settings.Remove("ContentIndexSettings");

foreach (var fieldDefinition in partDefinition.ContentPartFieldDefinitionRecords)
{
if (fieldDefinition.Settings != null)
{
if (fieldDefinition.Settings.TryGetValue("ContentIndexSettings", out var existingFieldSettings) &&
!fieldDefinition.Settings.ContainsKey("LuceneContentIndexSettings"))
{
fieldDefinition.Settings.Add(new JProperty("LuceneContentIndexSettings", existingFieldSettings));
}

fieldDefinition.Settings.Remove("ContentIndexSettings");
}
}
}
}

context.Step = JObject.FromObject(step);
}

return Task.CompletedTask;
}

private class ContentDefinitionStepModel
{
public string Name { get; set; }
public ContentTypeDefinitionRecord[] ContentTypes { get; set; } = Array.Empty<ContentTypeDefinitionRecord>();
public ContentPartDefinitionRecord[] ContentParts { get; set; } = Array.Empty<ContentPartDefinitionRecord>();
}
}
}
3 changes: 3 additions & 0 deletions src/OrchardCore.Modules/OrchardCore.ContentTypes/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
using OrchardCore.Mvc.Core.Utilities;
using OrchardCore.Navigation;
using OrchardCore.Recipes;
using OrchardCore.Recipes.Events;
using OrchardCore.Security.Permissions;

namespace OrchardCore.ContentTypes
Expand Down Expand Up @@ -47,6 +48,8 @@ public override void ConfigureServices(IServiceCollection services)
services.AddRecipeExecutionStep<ContentDefinitionStep>();
services.AddRecipeExecutionStep<ReplaceContentDefinitionStep>();
services.AddRecipeExecutionStep<DeleteContentDefinitionStep>();

services.AddTransient<IRecipeEventHandler, LuceneRecipeEventHandler>();
}

public override void Configure(IApplicationBuilder builder, IEndpointRouteBuilder routes, IServiceProvider serviceProvider)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,25 @@ public async Task BuildIndexAsync(BuildIndexContext context)
context.DocumentIndex.Set(
IndexingConstants.BodyAspectBodyKey,
body.Body,
DocumentIndexOptions.Analyze | DocumentIndexOptions.Sanitize);
DocumentIndexOptions.Sanitize);
}

context.DocumentIndex.Set(
IndexingConstants.DisplayTextAnalyzedKey,
context.ContentItem.DisplayText,
DocumentIndexOptions.Analyze | DocumentIndexOptions.Sanitize);
DocumentIndexOptions.Sanitize);

// We need to store because of ContentPickerResultProvider(s)
context.DocumentIndex.Set(
IndexingConstants.DisplayTextKey,
IndexingConstants.DisplayTextKey + IndexingConstants.KeywordKey,
context.ContentItem.DisplayText,
DocumentIndexOptions.Store);
DocumentIndexOptions.Keyword | DocumentIndexOptions.Store);

// We need to store because of ContentPickerResultProvider(s)
context.DocumentIndex.Set(
IndexingConstants.DisplayTextNormalizedKey,
context.ContentItem.DisplayText?.ReplaceDiacritics().ToLower(),
DocumentIndexOptions.Store);
DocumentIndexOptions.Keyword | DocumentIndexOptions.Store);
}
}
}
Loading

0 comments on commit 87b4271

Please sign in to comment.