मेरे पास तेजी से विशिष्ट अनुभव नहीं है, लेकिन काम को एकीकृत करने तक कई अन्य खोज इंजनों से अलग नहीं हो सकता है।
आसान तरीका: - कुछ भी नहीं करें, तेजी से अपनी साइट को क्रॉल करें और इसकी सभी जानकारी इकट्ठा करें। यह खोज एकीकरण करने का सबसे महंगा तरीका है, और कई लोग भूल जाते हैं कि दिन के अंत में यह आमतौर पर ~ 98% उनकी आवश्यकताओं को शामिल करता है।
रीयल-टाइम तरीका: एक नियोक्ता मॉड्यूल लिखें जो हर बार कुछ (एन) प्रकाशित होने पर तेजी से सूचित करता है ताकि सूचकांक अपडेट किए जा सकें (नमूना मॉड्यूल के अंत में देखें जो शायद आपको शुरू हो सकता है)।
ओवर-इंजीनियर रास्ता: Tridion के लिए एक जेपीए अनुरूप भंडारण विस्तार लिखें: एक deployer विस्तार के लिए http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/extending-content-delivery-storage-sdltridion-2011-1.aspx
नमूना कोड:
त्वरित जवाब के लिए
import java.util.Iterator;
import com.tridion.configuration.Configuration;
import com.tridion.configuration.ConfigurationException;
import com.tridion.deployer.Module;
import com.tridion.deployer.ProcessingException;
import com.tridion.deployer.Processor;
import com.tridion.transport.transportpackage.Binary;
import com.tridion.transport.transportpackage.BinaryKey;
import com.tridion.transport.transportpackage.Component;
import com.tridion.transport.transportpackage.ComponentKey;
import com.tridion.transport.transportpackage.MetaData;
import com.tridion.transport.transportpackage.MetaDataFile;
import com.tridion.transport.transportpackage.Page;
import com.tridion.transport.transportpackage.PageKey;
import com.tridion.transport.transportpackage.ProcessorInstructions;
import com.tridion.transport.transportpackage.Section;
import com.tridion.transport.transportpackage.TransportPackage;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
public class CustomCacheNotificationDeploy extends Module {
String action = null;
Logger log = null;
MetaDataFile pageMeta = null;
MetaDataFile componentMeta = null;
MetaDataFile binaryMeta = null;
public CustomCacheNotificationDeploy(Configuration config, Processor processor)
throws ConfigurationException {
super(config, processor);
log = LoggerFactory.getLogger(getClass());
// TODO Auto-generated constructor stub
}
@SuppressWarnings("deprecation")
public void process(TransportPackage data) throws ProcessingException{
ProcessorInstructions instructions = data.getProcessorInstructions();
action = instructions.getAction();
MetaData pageMetaInfo = instructions.getMetaData("Pages");
MetaData componentMetaInfo = instructions.getMetaData("Components");
MetaData binaryMetaInfo = instructions.getMetaData("Binaries");
pageMeta = data.getMetaData("Pages", pageMetaInfo.getName());
componentMeta = data.getMetaData("Components", componentMetaInfo.getName());
binaryMeta = data.getMetaData("Binaries", binaryMetaInfo.getName());
log.debug("Action " + action + " started for publication " + instructions.getPublicationId());
Section section = null;
Iterator<Section> Sections = instructions.getSections();
for(; Sections.hasNext(); processSection(section))
{
section = Sections.next();
}
}
protected void processSection(Section section)
{
log.debug("Processing Section " + section.getName());
Iterator iterator = section.getFileItems();
Object item;
for(; iterator.hasNext(); processItem(item, section))
{
item = iterator.next();
}
Section subSection;
for(Iterator i$ = section.getSubSections().iterator(); i$.hasNext(); processSection(subSection))
subSection = (Section)i$.next();
}
protected void processItem(Object obj, Section section)
{
if(obj instanceof PageKey)
{
log.debug("Object is Page");
PageKey key = (PageKey) obj;
Page page = (Page)pageMeta.getMetaData(key);
log.debug("Page being deployed is " + page.getId() + " with URL " + page.getURLPath());
}
if(obj instanceof ComponentKey)
{
log.debug("Object is Component");
ComponentKey key = (ComponentKey) obj;
Component component = (Component)componentMeta.getMetaData(key);
log.debug("Component being deployed is " + component.getId());
}
if(obj instanceof BinaryKey)
{
log.debug("Object is Binary");
BinaryKey key = (BinaryKey) obj;
Binary binary = (Binary)binaryMeta.getMetaData(key);
log.debug("Binary being deployed is " + binary.getId() + " with URL " + binary.getURLPath());
}
}
}
स्रोत
2012-06-13 12:52:02
धन्यवाद Nuno। हम नियोक्ता विस्तार का उपयोग करेंगे, इसलिए पेज, घटक, बाइनरी सामग्री प्रकाशित करते समय हम मेटाडेटा सामग्री/सामग्री को तेजी से दबाएंगे। कंटेंट डिलीवरी साइड पर हम कुछ फास्ट एपीआई का उपयोग करना चाहते हैं जो तेजी से संग्रह (डेटाबेस या फाइल सिस्टम) से सामग्री लाएंगे। मेरे पास तेजी से कार्यान्वयन पर अनुभव पर कोई हाथ नहीं है। – user1453602
@ ट्रूनियन में नूनो फ्रेशर। तो क्या आप कृपया इस कोड का उपयोग कैसे करें? तैनाती विस्तार का उपयोग करने के लिए क्या कदम उठाए जाएंगे? मैंने पेज बनाया है। अब पृष्ठों में खोज कार्यक्षमता प्रदान करना चाहते हैं। एक खोज बटन वाले टेक्स्टबॉक्स को यह कार्यक्षमता प्रदान करनी चाहिए। इस वेबसाइट की तरह शीर्ष चरम पर है। – Coder
कभी भी सलाह का सबसे मजबूत टुकड़ा - पहले पता लगाएं कि बिना ट्रिडियन के इसे कैसे किया जाए। फिर इसे अपने टेम्पलेट आउटपुट का हिस्सा बनने के लिए ले जाएं। गंभीरता से, Tridion भूल जाओ और इसे पहले कोशिश करें। यह नियोक्ता एक्सटेंशन केवल उदाहरण है कि आप तैनाती के दौरान कोड कैसे चला सकते हैं, खोज या खोज कार्यक्षमता से कोई लेना देना नहीं है। –