Skip to content

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 to Region and extracted from Credentials section to the root section of OrchardCore_Media_AmazonS3, AccessKeyId was renamed to AccessKey, ProfileName was renamed to Profile. 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.