I have a different search result when upgrading from 6.6.2 to 6.7.0.
It looks like that since 6.7.0 a match_phrase_prefix query is now able to match a keyword field.
I have read the changelog of 6.7 but I don't find a reason for this, here is a script to reproduce the problem:
Hi, clearly match_phrase_prefix is now able to search on keyword field.
This new behavior should be noticed somewhere in the Elasticsearch 6.7.0 changes and in the documentation.
I didn't find anything in the Lucene changelog between 7.6.0 (Elaticsearch 6.6.2) and 7.7.0 (Elasticsearch 6.7.0).
Just to give more context, I am not saying that applying a match_phrase operation to a keyword field is a good idea.
Previously it wasn't working and it was clear that the mapping needed to be updated.
Since 6.7 it gives the impression that it works so we loose the "fail fast" effect.