/// <summary>
        /// Creates a new IndexBatch for deleting a batch of documents.
        /// </summary>
        /// <param name="keyName">The name of the key field that uniquely identifies documents in the index.</param>
        /// <param name="keyValues">The keys of the documents to delete.</param>
        /// <returns>A new IndexBatch.</returns>
        public static IndexBatch <Document> Delete(string keyName, IEnumerable <string> keyValues)
        {
            Throw.IfArgumentNull(keyName, "keyName");
            Throw.IfArgumentNull(keyValues, "keyValues");

            return(New(keyValues.Select(v => IndexAction.Delete(keyName, v))));
        }
        /// <summary>
        /// Creates a new IndexBatch for deleting a batch of documents.
        /// </summary>
        /// <typeparam name="T">
        /// The CLR type that maps to the index schema. Instances of this type can be stored as documents in the index.
        /// </typeparam>
        /// <param name="documents">The documents to delete; Fields other than the key are ignored.</param>
        /// <returns>A new IndexBatch.</returns>
        public static IndexBatch <T> Delete <T>(IEnumerable <T> documents)
        {
            Throw.IfArgumentNull(documents, "documents");

            return(New(documents.Select(d => IndexAction.Delete(d))));
        }