Orchard Core 1.5.0¶
Release date: October 2022
This release contains security vulnerability fixes. It is recommended you update your existing Orchard Core deployments with this version.
Breaking Changes¶
-
The
OrchardCore_Media_AmazonS3config section was changed:RegionEndpointwas renamed toRegionand extracted fromCredentialssection to the root section ofOrchardCore_Media_AmazonS3,AccessKeyIdwas renamed toAccessKey,ProfileNamewas renamed toProfile. See this pull request for details. -
Lucene breaking changes. See this pull request for details.
ISearchQueryService moved to OrchardCore.Search.Lucene.Abstractions module as ILuceneSearchQueryService. The OrchardCore.Search module now takes into consideration multiple search provider implementations.
Lucene Migration¶
Manual migration to get back Lucene Indices Settings, Deployment plans, and Queries. (Reference only)
UPDATE Document SET Content = REPLACE(content, '\"$type\":\"OrchardCore.Lucene.Deployment.LuceneIndexDeploymentStep, OrchardCore.Lucene\"', '\"$type\":\"OrchardCore.Search.Lucene.Deployment.LuceneIndexDeploymentStep, OrchardCore.Search.Lucene\"')
WHERE [Type] = 'OrchardCore.Deployment.DeploymentPlan, OrchardCore.Deployment.Abstractions'
UPDATE Document SET Content = REPLACE(content, '\"$type\":\"OrchardCore.Lucene.Deployment.LuceneSettingsDeploymentStep, OrchardCore.Lucene\"', '\"$type\":\"OrchardCore.Search.Lucene.Deployment.LuceneSettingsDeploymentStep, OrchardCore.Search.Lucene\"')
WHERE [Type] = 'OrchardCore.Deployment.DeploymentPlan, OrchardCore.Deployment.Abstractions'
UPDATE Document SET Content = REPLACE(content, '\"$type\":\"OrchardCore.Lucene.Deployment.LuceneIndexResetDeploymentStep, OrchardCore.Lucene\"', '\"$type\":\"OrchardCore.Search.Lucene.Deployment.LuceneIndexResetDeploymentStep, OrchardCore.Search.Lucene\"')
WHERE [Type] = 'OrchardCore.Deployment.DeploymentPlan, OrchardCore.Deployment.Abstractions'
UPDATE Document SET Content = REPLACE(content, '\"$type\":\"OrchardCore.Lucene.Deployment.LuceneIndexRebuildDeploymentStep, OrchardCore.Lucene\"', '\"$type\":\"OrchardCore.Search.Lucene.Deployment.LuceneIndexRebuildDeploymentStep, OrchardCore.Search.Lucene\"')
WHERE [Type] = 'OrchardCore.Deployment.DeploymentPlan, OrchardCore.Deployment.Abstractions'
UPDATE Document SET Content = REPLACE(content, '"$type":"OrchardCore.Lucene.LuceneQuery, OrchardCore.Lucene"', '"$type":"OrchardCore.Search.Lucene.LuceneQuery, OrchardCore.Search.Lucene"')
WHERE [Type] = 'OrchardCore.Queries.Services.QueriesDocument, OrchardCore.Queries'
UPDATE Document SET [Type] = 'OrchardCore.Search.Lucene.Model.LuceneIndexSettingsDocument, OrchardCore.Search.Lucene'
WHERE [Type] = 'OrchardCore.Lucene.Model.LuceneIndexSettingsDocument, OrchardCore.Lucene'
Lucene Breaking Changes¶
Module rename¶
The module was renamed from OrchardCore.Lucene to OrchardCore.Search.Lucene. Update your recipe files and dependency declarations in extension manifests.
IndexingConstants changes¶
| Constant | Before | after |
|---|---|---|
| DisplayTextKey | Content.ContentItem.DisplayText | Content.ContentItem.DisplayText.keyword |
| ContainedPartKey + IdsKey (new) | Content.ContentItem.ContainedPart.ListContentItemId | Content.ContentItem.ContainedPart.Ids |
Taxonomies module indexing¶
You can now access the term ids of a taxonomy field by using "{ContentTypeName}.{FieldName}.Ids".
Queries migration¶
Elasticsearch maps automatically the data which means that Text fields will always be Tokenized. You can now access the Stored value of that Text field by using .keyword as a suffix to your field name. This means that you can now use a TermQuery on that .keyword field and a MatchQuery on the basic field name. See Elasticsearch vs Lucene
Permissions¶
ManageIndexes will be now ManageLuceneIndexes
Lucene indexation¶
| Before | After | Action |
|---|---|---|
| Indexed | Indexed | Indexed meant "Keyword" in Lucene so we migrated these to "Keyword" in the content index settings. |
| Analyzed | Keyword | The Analyzed option is removed. Everything that was set as analyzed doesn't need migration because it is now the default. |
| Stored | Stored | Nothing to do. Should work as before |
YesSQL breaking changes¶
YesSql is now using the new SQL client which encrypts the connection by default.
If the SQL Server does not have a trusted SSL certificate and you would and want to continue using encrypted communicated using the untrusted server, add TrustServerCertificate=True to the connection string.
If you do not want to encrypt the communication at all, you can use Encrypt=false.