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_AmazonS3
config section was changed:RegionEndpoint
was renamed toRegion
and extracted fromCredentials
section to the root section ofOrchardCore_Media_AmazonS3
,AccessKeyId
was renamed toAccessKey
,ProfileName
was 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
.