internal IndexData GetIndexData(IIndexable indexable, IProviderUpdateContext context)
 {
     Assert.ArgumentNotNull(indexable, "indexable");
     Assert.ArgumentNotNull(context, "context");
     Assert.Required((index.Configuration.DocumentOptions as AzureDocumentBuilderOptions), "IDocumentBuilderOptions of wrong type for this crawler");
     AzureDocumentBuilder documentBuilder = (AzureDocumentBuilder)ReflectionUtil.CreateObject(context.Index.Configuration.DocumentBuilderType, new object[2]
     {
         indexable,
         context
     });
     if (documentBuilder == null)
     {
         CrawlingLog.Log.Error("Unable to create document builder (" + context.Index.Configuration.DocumentBuilderType + "). Please check your configuration. We will fallback to the default for now.", (Exception)null);
         documentBuilder = new AzureDocumentBuilder(indexable, context);
     }
     documentBuilder.AddSpecialFields();
     documentBuilder.AddItemFields();
     documentBuilder.AddComputedIndexFields();
     documentBuilder.AddBoost();
     var indexData = new IndexData(index, indexable, documentBuilder);
     index.AzureSchema.AddAzureIndexFields(indexData.Fields.Where(f => f.Name != indexData.UpdateTerm.Name).ToList());
     index.AzureSchema.BuildAzureIndexSchema(indexData.UpdateTerm, indexData.FullUpdateTerm);
     return indexData;
 }
 public IndexData(ISearchIndex index, IIndexable indexable, AzureDocumentBuilder documentBuilder)
   : this(index, indexable, documentBuilder.Document, documentBuilder.CollectedFields)
 {
 }