public static void ExecuteMethod_PerformIndexing(IContainerOwner owner, IndexingRequest indexingRequest, string luceneIndexFolder) { string indexName = indexingRequest.IndexName; List<Document> documents = new List<Document>(); List<string> removeDocumentIDs = new List<string>(); foreach (var objLocation in indexingRequest.ObjectLocations) { IInformationObject iObj = StorageSupport.RetrieveInformation(objLocation, null, owner); if (iObj == null) { var lastSlashIX = objLocation.LastIndexOf('/'); var objectID = objLocation.Substring(lastSlashIX + 1); removeDocumentIDs.Add(objectID); continue; } IIndexedDocument iDoc = iObj as IIndexedDocument; if (iDoc != null) { var luceneDoc = iDoc.GetLuceneDocument(indexName); if (luceneDoc == null) continue; luceneDoc.RemoveFields("ObjectDomainName"); luceneDoc.RemoveFields("ObjectName"); luceneDoc.RemoveFields("ObjectID"); luceneDoc.RemoveFields("ID"); luceneDoc.Add(new Field("ObjectDomainName", iObj.SemanticDomainName, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.NO)); luceneDoc.Add(new Field("ObjectName", iObj.Name, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.NO)); luceneDoc.Add(new Field("ObjectID", iObj.ID, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.NO)); luceneDoc.Add(new Field("ID", iObj.ID, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.NO)); documents.Add(luceneDoc); } } FieldIndexSupport.AddAndRemoveDocuments(luceneIndexFolder, documents.ToArray(), removeDocumentIDs.ToArray()); }
public static IndexingRequest GetTarget_IndexingRequest(string[] objectsToIndex) { IndexingRequest indexingRequest = new IndexingRequest(); var owner = InformationContext.CurrentOwner; indexingRequest.SetLocationAsOwnerContent(owner, indexingRequest.ID); indexingRequest.ObjectLocations.AddRange(objectsToIndex); indexingRequest.IndexName = IndexSupport.DefaultIndexName; return indexingRequest; }
public static void ExecuteMethod_DeleteIndexingRequest(IndexingRequest indexingRequest) { indexingRequest.DeleteInformationObject(); }
public static void ExecuteMethod_PutIndexingRequestToQueue(IndexingRequest indexingRequest) { string activeContainerName = StorageSupport.CurrActiveContainer.Name; IndexSupport.PutIndexingRequestToQueue(activeContainerName, indexingRequest.IndexName, InformationContext.CurrentOwner, indexingRequest.ID); }
public static void ExecuteMethod_StoreObject(IndexingRequest indexingRequest) { indexingRequest.StoreInformation(); }