Some question about a 'missing' filter

curl -XDELETE http://localhost:9200/twitter/tweet

curl -XPUT http://localhost:9200/twitter/tweet/1 -d '{
"contents": "a"
}'

curl -XPUT http://localhost:9200/twitter/tweet/2 -d '{
"contents": null
}'

curl -XPUT http://localhost:9200/twitter/tweet/3 -d '{
"contents": "b"
}'

curl -XPUT http://localhost:9200/twitter/tweet/4 -d '{
"contents": "aa"
}'

curl -XPUT http://localhost:9200/twitter/tweet/5 -d '{
"contents": "1"
}'

curl -XGET http://localhost:9200/twitter/tweet/_search?pretty -d '{
"query":{
"constant_score" : {
"filter" : {
"missing" : {
"field" : "contents",
"existence" : true,
"null_value" : true
}
}
}
}
}'

result of the last query

{
"took" : 3,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 2,
"max_score" : 1.0,
"hits" : [ {
"_index" : "twitter",
"_type" : "tweet",
"_id" : "1",
"_score" : 1.0, "_source" : {
"contents": "a"
}
}, {
"_index" : "twitter",
"_type" : "tweet",
"_id" : "2",
"_score" : 1.0, "_source" : {
"contents": null
}
} ]
}
}

Results include document that has content "a"
In my real data, include document that has content "1"

I have used 0.20.2.
Am I missing some considerations... or is this bug?