public static IEnumerable <string> Search
        (
            [NotNull] IIrbisConnection connection,
            [NotNull] string database,
            [NotNull] string format,
            [NotNull] string searchExpression,
            int batchSize
        )
        {
            Sure.NotNull(connection, "connection");
            Sure.NotNullNorEmpty(database, "database");
            Sure.NotNullNorEmpty(format, "format");
            Sure.NotNullNorEmpty(searchExpression, "searchExpression");
            if (batchSize < 1)
            {
                Log.Error
                (
                    "BatchRecordFormatter::Search: "
                    + "batchSize="
                    + batchSize
                );

                throw new ArgumentOutOfRangeException("batchSize");
            }

            int[] found = connection.Search(searchExpression);
            if (found.Length == 0)
            {
                return(new string[0]);
            }

            BatchRecordFormatter result = new BatchRecordFormatter
                                          (
                connection,
                database,
                format,
                batchSize,
                found
                                          );

            return(result);
        }