多くのメタデータ フィールドを持つスキーマがあります。以下のように、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 程度が、私のニーズにとって快適な上限のように思えます。
このフィールドに入力できるテキストのバイト数を増やす簡単な方法はありますか?