public async Task <DocumentIndexResult> MergeOrUploadDocumentsAsync <T>(string indexName, T[] documents)
        {
            var indexClient = GetClient(indexName);
            var actions     = new IndexAction <T>[] { };

            foreach (var d in documents)
            {
                actions.Append(IndexAction.MergeOrUpload(d));
            }
            var batch = IndexBatch.New(actions);

            return(await indexClient.Documents.IndexAsync(batch));
        }