Match pharse prefix acts strange

I have two documents with same content like

"hits": [
         {
            "_index": "testbyprogrammer",
            "_type": "type1",
            "_id": "1",
            "_score": 0.095891505,
            "_source": {
               "msg": "Huegli Bioforce Trocomare Sea Salt with Vegetables and Herbs"
            }
         },
         {
            "_index": "testbyprogrammer",
            "_type": "type1",
            "_id": "2",
            "_score": 0.095891505,
            "_source": {
               "msg": "Huegli Bioforce Trocomare Sea Salt with Vegetables and Herbs"
            }
         }
      ]

When i search like this

POST testbyprogrammer/type1/_search
{
    "query": {
        "match_phrase_prefix": {
           "msg": "bio"
        }
    }
}

It only returns one document.But when i use like

POST testbyprogrammer/type1/_search
{
    "query": {
        "match_phrase_prefix": {
           "msg": "biof"
        }
    }
}

it returns two records

Shall i know the reason?

A full script, including mapping would help IMO.