2013-02-12 12 views
7

मेरे पास बहुत सारे मेटाडेटा फ़ील्ड के साथ एक स्कीमा है।मैं ट्रिडियन ब्रोकर में किसी क्षेत्र में 3400 बाइट टेक्स्ट कैसे डाल सकता हूं?

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()); 
} 

यह ठीक अब तक काम करता है:: उपयोगकर्ता कुछ खोज पाठ में टाइप कर सकते हैं, हम के माध्यम से खोज पाठ पारित हम Tridion API जैसे के माध्यम से दलाल से जो स्कीमा के आधार पर घटकों के लिए खोज करने के लिए सक्षम होना चाहते हैं ब्रोकर एपीआई के माध्यम से ट्रिडियन के लिए, और ट्रिडियन हमें उन घटकों को वापस देता है जो उस खोज टेक्स्ट से मेल खाते हैं।

लेकिन!

चरण:: तैनाती प्रसंस्करण चरण में विफल रहा है, घटक को तैनात नहीं किया जा सका [घटक आईडी = टीसीएम अगर मैं किसी भी घटक के लिए सामग्री क्षेत्र के लिए पाठ का एक बहुत जोड़ने के लिए, Tridion प्रकाशन की प्रक्रिया "की तैनाती" चरण में विफल रहता है : 9-2617-16 शीर्षक = xyz schema = tcm: 9-2325-8], कस्टममेटा फ़ील्ड, स्ट्रिंगवैल्यू 3400 बाइट्स के समर्थित आकार से बड़ा है!

मैं nvarchar (मैक्स) के लिए nvarchar (3400) से दलाल डेटाबेस के CUSTOM_META तालिका में KEY_STRING_VALUE स्तंभ को बदलने की कोशिश की है, लेकिन है कि समस्या तय कर दी है प्रतीत नहीं होता है।

मैं सीमा से अधिक सीमा से अधिक नहीं हूं: "wc" मुझे बताता है कि मेरे पाठ में 4037 बाइट हैं। मेरी जरूरतों के लिए लगभग 6000 या तो आरामदायक-आइश ऊपरी सीमा की तरह लगता है।

क्या इस क्षेत्र में मुझे अनुमति देने वाले पाठ के बाइट्स की मात्रा बढ़ाने का कोई आसान तरीका है?

+2

बस एक FYI करें एक के रूप में Tridion दूसरे करने के लिए डेवलपर। पाठ खोजों के लिए ब्रोकर डेटाबेस (या उस मामले के लिए कोई डेटाबेस) का उपयोग करना, विशेष रूप से खुले% टेक्स्ट% खोजों की वास्तव में अनुशंसा नहीं की जाती है।यह निश्चित रूप से आपको बड़े प्रदर्शन के मुद्दों को देगा। –

+0

@ हेन्ड्रिक: हाँ, मुझे पता है कि यह प्रत्येक पंक्ति स्कैन कर रहा है और क्वेरी के उस हिस्से के लिए इंडेक्स को मार नहीं रहा है: बेंचमार्किंग में अब तक कोई समस्या नहीं है (100 मिली से नीचे) - हम वास्तव में केवल यहाँ 20 पंक्तियों की तरह बात कर रहे हैं। मैं मानता हूं कि यह निश्चित रूप से आदर्श नहीं है। – George

उत्तर

10

आप जो करना चाहते हैं उसे करने का कोई समर्थित तरीका नहीं है। साथ ही, ध्यान रखें कि कस्टम मेटा का वास्तविक उद्देश्य क्या है। मुझे लगता है कि आप कॉलम में बड़ी सामग्री जोड़कर इसका दुरुपयोग कर रहे हैं।

फिर भी, यदि आप वास्तव में है कि सड़क के नीचे जाना चाहते हैं, तो आप Tridion समर्थन से संपर्क करें या यात्रा के sdltridionworld (लॉगिन आवश्यक) और डाउनलोड करने के लिए CD_2011.1.1.83467 (या किसी भी CD_2011 के अलावा CD_2011.1.1.81125 युक्त हॉटफिक्स जरूरत .1.1.83475 !!!)। हॉटफिक्स में क्या परिवर्तन होता है यह तैनाती के समय किए गए मेटाडेटा के आकार पर एक हार्ड चेक को हटा देता है। दूसरे शब्दों में, यह आपको डेटाबेस सर्वर को यह तय करने के लिए पैर में शूट करने की अनुमति देता है कि क्या आपको उस कॉलम में उस सामग्री को स्टोर करने की अनुमति है या नहीं। कृपया पता करें कि डेटाबेस कॉलम बदलना ट्रिडियन द्वारा समर्थित है।

उम्मीद है कि इससे मदद मिलती है।

+0

उत्तर के लिए धन्यवाद: हम देख रहे हैं कि हॉटफिक्स हमारे लिए समस्या को हल करता है और फिर से मूल्यांकन करता है कि हम प्रश्नों के घटकों के लिए खोज कैसे कर रहे हैं। हम शायद यह नहीं लिख सकते कि यह खोज अल्प अवधि में कैसे काम कर रही है (जैसा कि बताया गया है, यह काम करता है और यह पर्याप्त तेज़ से अधिक है), लेकिन शायद अगली रिलीज में। – George

5

दलाल डेटाबेस में स्तंभ की परिभाषा बदलने नहीं समर्थित है, और समर्थन के कारण और भविष्य में अपने कार्यान्वयन के लिए मुद्दों का उन्नयन कर सकते हैं।

यह लगता जैसे आप अपने घटकों के पाठ सामग्री ले जा रहे हैं और यह एक पाठ आधारित मेटाडाटा क्षेत्र में रखने के लिए आपके सामने अंत (मुझे माफ कर दो अगर मैं कर रहा हूँ पर पूर्ण पाठ खोज कार्यक्षमता के कुछ प्रकार प्रदान करने के लिए गलत)। यह सामग्री वितरण API के इच्छित उद्देश्य के साथ अच्छी तरह से फिट नहीं है।

मैं मुक्त पाठ खोज को लागू करने के विषय पर एक पिछले question का उल्लेख, और मेरे answer

संबंधित मुद्दे