protected virtual XDocument GetDocument(IIndexable indexable, IProviderUpdateContext context)
        {
            //START: post 4
            if (InboundIndexFilterPipeline.Run(new InboundIndexFilterArgs(indexable)))
            {
                return(null);
            }
            //END: post 4

            //START: commented out in post 5
            //var doc = new XDocument(
            //  new XElement("item",
            //    new XAttribute("id", item.ID.ToString()),
            //    new XAttribute("name", item.Name),
            //    new XAttribute("path", item.Paths.Path)
            //  )
            //);
            //return doc;
            //END: commented out in post 5

            //START: post 5
            var builder = new XmlDocumentBuilder(indexable, context);

            builder.AddItemFields();
            return(builder.Document);
            //END: post 5

            //var item = (Item)(indexable as SitecoreIndexableItem);
            //foreach (var language in item.Languages)
            //{
            //    var latestVersion = item.Database.GetItem(item.ID, language, Sitecore.Data.Version.Latest);
            //    if (fields != null)
            //    {
            //        fields.IsLatestVersion = fields.Version == ((SitecoreIndexableItem)latestVersion).Item.Version.Number;
            //    }
            //    if (indexable is SitecoreIndexableItem)
            //    {
            //        ((SitecoreIndexableItem)indexable).IndexFieldStorageValueFormatter = context.Index.Configuration.IndexFieldStorageValueFormatter;
            //    }
            //    builder.AddSpecialField("_uniqueid", indexable.UniqueId.Value, false);
            //    builder.AddSpecialField("_datasource", indexable.DataSource, false);
            //    builder.AddSpecialField("_indexname", _index.Name, false);
            //    builder.AddSpecialFields();
            //    builder.AddItemFields();
            //    builder.AddBoost();
            //}
            //return builder.Document;
        }
Beispiel #2
0
 private void ApplyPermissionsThenIndex(IProviderUpdateContext context, IIndexable version, IIndexable latestVersion)
 {
     if (InboundIndexFilterPipeline.Run(new InboundIndexFilterArgs(version)))
     {
         Event.RaiseEvent("indexing:excludedfromindex", new object[] { _index.Name, version.UniqueId });
     }
     else
     {
         var itemToAdd = IndexVersion(version, latestVersion, context);
         if (itemToAdd == null)
         {
             CrawlingLog.Log.Warn(string.Format("ElasticIndexOperations : AddItem : IndexVersion produced a NULL doc for version {0}. Skipping.", version.UniqueId));
         }
         else
         {
             context.AddDocument(itemToAdd, null);
         }
     }
 }
Beispiel #3
0
        private IndexData BuildDataToIndex(IProviderUpdateContext context, IIndexable version)
        {
            var instance = context.Index.Locator.GetInstance <ICorePipeline>();

            version = CleanUpPipeline.Run(instance, new CleanUpArgs(version, context));
            if (InboundIndexFilterPipeline.Run(instance, new InboundIndexFilterArgs(version)))
            {
                index.Locator.GetInstance <IEvent>().RaiseEvent("indexing:excludedfromindex", new object[2]
                {
                    index.Name,
                    version.UniqueId
                });
                return(null);
            }
            var indexData = GetIndexData(version, context);

            if (!indexData.IsEmpty)
            {
                return(indexData);
            }
            CrawlingLog.Log.Warn(string.Format("AzureIndexOperations : IndexVersion produced a NULL doc for version {0}. Skipping.", version.UniqueId), null);
            return(null);
        }