我有一个包含很多元数据字段的架构。我们希望能够通过 Tridion API 从代理中搜索基于该模式的组件,例如:
using Tridion.ContentDelivery.DynamicContent.Query;
private static Criteria getSearchCriteria(
string searchText,
params BrokerConstants.MetadataField[] fields)
var searchCriteria = new List<Criteria>();
foreach (var f in fields)
{
var mkcText = new CustomMetaKeyCriteria(f.Name);
var mvcText = new CustomMetaValueCriteria(
mkcText,
"%" + searchText + "%",
Criteria.Like);
searchCriteria.Add(mvcText);
}
return new OrCriteria(searchCriteria.ToArray());
}
到目前为止,这很好用:用户可以输入一些搜索文本,我们通过代理 API 将搜索文本传递给 Tridion,然后 Tridion 将与该搜索文本匹配的组件返回给我们。
但!如果我在任何组件的内容字段中添加大量文本,则 Tridion 发布过程会在“部署”阶段失败:
阶段:部署处理阶段失败,无法部署组件 [Component id=tcm:9-2617-16 title=xyz schema=tcm:9-2325-8],CustomMeta 字段 StringValue 大于支持的 3400 字节大小!
我尝试将代理数据库的 CUSTOM_META 表中的 KEY_STRING_VALUE 列从 nvarchar(3400) 更改为 nvarchar(MAX),但这似乎并没有解决问题。
我根本没有超出限制:“wc”告诉我我的文本中有 4037 个字节。大约 6000 左右听起来对我的需求来说是一个舒适的上限。
有没有一种简单的方法可以增加我在此字段中允许的文本字节数?