How to sort view by content type, using literal ordering, as second order-by clause
Although there may be a method to do this via a query alter I was unable to find the correct solution. I was however able to find a solution.

Although we utilise search API heavily and we can use the content type relevance weighting we had a requirement to sort by a custom content type order and then by date, in addition some content types needed the same weight.

Our solution: Add a search weighting field to the required content types (e.g. integer 1-5) and include it in the index.  In the view add a sort filter for your search filter field.   

You'll need to batch process or use views bulk operations to fill in existing node data and hide the field from content add / edit screens if required.  

One added benefit of this method is, if the client wants to have a piece of content show at the top when it's in the result set they can manually amend the new field for it.