Ich habe ein Schema mit vielen Metadatenfeldern. Wir wollen für Komponenten auf der Basis suchen können, auf diesem Schema vom Broker über den Tridion-API wie:Wie kann ich mehr als 3400 Bytes Text in ein Feld im Tridion Broker einfügen?
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());
}
Dies funktioniert so weit: der Benutzer eine Suchtext eingeben kann, geben wir den Suchtext durch zu Tridion über die Broker-API, und Tridion gibt uns die Komponenten zurück, die mit diesem Suchtext übereinstimmen.
Aber! Wenn ich eine Menge Text auf den Inhalt Feld für jede Komponente hinzufügen, schlägt der Tridion-Publishing-Prozess bei der „Bereitstellung“ Phase:
Phase: Deployment Verarbeitungsphase gescheitert, bereitstellen kann nicht Komponente [Komponente id = tcm : 9-2617-16 title = xyz schema = tcm: 9-2325-8], CustomMeta Feld, StringValue, ist größer als die unterstützte Größe von 3400 Bytes!
Ich versuchte, die KEY_STRING_VALUE Spalte in den Broker-Datenbanken CUSTOM_META Tabelle von nvarchar (3400) zu nvarchar (MAX) zu ändern, aber das scheint nicht das Problem behoben zu haben.
Ich überschreite die Grenze überhaupt nicht sehr viel: "wc" sagt mir, dass es 4037 Bytes in meinem Text gibt. Etwa 6000 oder so klingt wie eine bequeme Obergrenze für meine Bedürfnisse.
Gibt es eine einfache Möglichkeit, die Anzahl der Bytes Text erhöhen, die ich in diesem Feld erlaubt bin?
Just an FYI als ein Tridion Entwickler zu einem anderen. Die Verwendung der Broker-Datenbank (oder einer anderen Datenbank in diesem Fall) für Textsuchen, insbesondere die offenen% text% -Suchen, wird wirklich nicht empfohlen.Dies wird Ihnen sicherlich große Leistungsprobleme bringen. –
@Hendrik: Ja, ich bin mir bewusst, dass es jede Zeile scannt und nicht den Index für diesen Teil der Abfrage trifft: im Benchmarking war es bisher kein Problem (deutlich unter 100 Millis) - wir sind wirklich nur wie 20 Reihen hier reden. Ich stimme zu, dass es sicherlich nicht ideal ist. – George