Querying "Hash" Values Stored under String Mapping

{
"_id": "2",
"_index": "insta",
"_score": 1.0,
"_source": {
"features": {
"age": "thirty",
"name": "bob"
}
},
"_type": "user"
},

As you did not escape the quotation marks, the parser reads as it under
features, {field=age, value=thirty}, {field=name, value=bob}.
Your text search is looking for value of "age", thus will not match as it
is a field name.

Note in 0.19.9, text query is renamed to match queryhttp://www.elasticsearch.org/guide/reference/query-dsl/match-query.html
.

--