I have several searches that my application uses and they are relatively big searches, millions of documents each, I am looking to simply display the queue of indexers waiting to run on a page in my application. This is so I can have a better insight into what will be finished and when since I know roughly how long each one should take.
I'm able to find the one currently in progress but not the ones that have yet to run in the SDK. I've done some digging around in the SDK but turned up nothing and I also don't see anything referring to it in the documentation
https://docs.microsoft.com/en-us/rest/api/searchservice/indexer-operations
It doesn't seem like its an option but I'm not sure why it wouldn't be
Doesn't seem to be anything here either about being scheduled to run
This is the Indexer class
public class Indexer : IResourceWithETag
{
//
// Summary:
// Initializes a new instance of the Indexer class.
public Indexer();
//
// Summary:
// Initializes a new instance of the Indexer class.
//
// Parameters:
// name:
// The name of the indexer.
//
// dataSourceName:
// The name of the datasource from which this indexer reads data.
//
// targetIndexName:
// The name of the index to which this indexer writes data.
//
// description:
// The description of the indexer.
//
// schedule:
// The schedule for this indexer.
//
// parameters:
// Parameters for indexer execution.
//
// fieldMappings:
// Defines mappings between fields in the data source and corresponding target fields
// in the index.
//
// isDisabled:
// A value indicating whether the indexer is disabled. Default is false.
//
// eTag:
// The ETag of the Indexer.
public Indexer(string name, string dataSourceName, string targetIndexName, string description = null, IndexingSchedule schedule = null, IndexingParameters parameters = null, IList<FieldMapping> fieldMappings = null, bool? isDisabled = null, string eTag = null);
//
// Summary:
// Gets or sets the name of the indexer.
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
//
// Summary:
// Gets or sets the description of the indexer.
[JsonProperty(PropertyName = "description")]
public string Description { get; set; }
//
// Summary:
// Gets or sets the name of the datasource from which this indexer reads data.
[JsonProperty(PropertyName = "dataSourceName")]
public string DataSourceName { get; set; }
//
// Summary:
// Gets or sets the name of the index to which this indexer writes data.
[JsonProperty(PropertyName = "targetIndexName")]
public string TargetIndexName { get; set; }
//
// Summary:
// Gets or sets the schedule for this indexer.
[JsonProperty(PropertyName = "schedule")]
public IndexingSchedule Schedule { get; set; }
//
// Summary:
// Gets or sets parameters for indexer execution.
[JsonProperty(PropertyName = "parameters")]
public IndexingParameters Parameters { get; set; }
//
// Summary:
// Gets or sets defines mappings between fields in the data source and corresponding
// target fields in the index.
[JsonProperty(PropertyName = "fieldMappings")]
public IList<FieldMapping> FieldMappings { get; set; }
//
// Summary:
// Gets or sets a value indicating whether the indexer is disabled. Default is false.
[JsonProperty(PropertyName = "disabled")]
public bool? IsDisabled { get; set; }
//
// Summary:
// Gets or sets the ETag of the Indexer.
[JsonProperty(PropertyName = "@odata.etag")]
public string ETag { get; set; }
//
// Summary:
// Validate the object.
//
// Exceptions:
// T:Microsoft.Rest.ValidationException:
// Thrown if validation fails
public virtual void Validate();
}
Since I only care about running several indexers at once at any point in time, not on schedule, the indexing schedule doesn't give me the information I need
//
// Summary:
// Represents a schedule for indexer execution.
public class IndexingSchedule
{
//
// Summary:
// Initializes a new instance of the IndexingSchedule class.
public IndexingSchedule();
//
// Summary:
// Initializes a new instance of the IndexingSchedule class.
//
// Parameters:
// interval:
// The interval of time between indexer executions.
//
// startTime:
// The time when an indexer should start running.
public IndexingSchedule(TimeSpan interval, DateTimeOffset? startTime = null);
//
// Summary:
// Gets or sets the interval of time between indexer executions.
[JsonProperty(PropertyName = "interval")]
public TimeSpan Interval { get; set; }
//
// Summary:
// Gets or sets the time when an indexer should start running.
[JsonProperty(PropertyName = "startTime")]
public DateTimeOffset? StartTime { get; set; }
//
// Summary:
// Validate the object.
//
// Exceptions:
// T:Microsoft.Rest.ValidationException:
// Thrown if validation fails
public virtual void Validate();
}