public virtual IndexDocument CreateDocument() { using (var op = SnTrace.Index.StartOperation("LM: DocumentIndexingActivity.CreateDocument (VersionId:{0}) A{1}", VersionId, Id)) { IndexDocument doc; if (IndexDocumentData != null) { // create document from indexdocumentdata if it has been supplied (eg via MSMQ if it was small enough to send it over) doc = IndexManager.CompleteIndexDocument(IndexDocumentData); if (doc == null) { SnTrace.Index.Write("LM: DocumentIndexingActivity.CreateDocument (VersionId:{0}): Document is NULL from QUEUE", VersionId); } } else { // create document via loading it from db (eg when indexdocumentdata was too large to send over MSMQ) doc = IndexManager.LoadIndexDocumentByVersionId(VersionId); if (doc == null) { SnTrace.Index.Write("LM: DocumentIndexingActivity.CreateDocument (VersionId:{0}): Document is NULL from DB.", VersionId); } } op.Successful = true; return(doc); } }
public IndexDocument GetIndexDocument(Node node) { //UNDONE:<?predication: Somehow store the index document after saving and get the stored object here, instead of recreating it. // Problem: the index doc finalization doing in an async indexing task and it maybe not ready yet. var docProvider = Providers.Instance.IndexDocumentProvider; var doc = docProvider.GetIndexDocument(node, false, node.Id == 0, out var _); var docData = DataStore.CreateIndexDocumentData(node, doc, null); IndexManager.CompleteIndexDocument(docData); return(doc); }
public IndexDocument CompleteIndexDocument(IndexDocumentData indexDocumentData) { return(IndexManager.CompleteIndexDocument(indexDocumentData)); }