I have a doubt, it is no where mentioned in docs about what kind of queries can be used in filter context, which leads to the confusion that can match be used inside a filter context?
Yes, that is possible, if you put the match query inside a query filter: https://www.elastic.co/guide/en/elasticsearch/reference/1.7/query-dsl-query-filter.html
If you are on a ES 2.x version then this is no longer needed, because filters and queries have been merged in the query dsl. You can then just use any query as 'filter' by nesting it inside a bool query's filter clause or nest it in a constant_score query.
Ok, but in 1.x the match query was not available in filter context right?
Right, a match
filter never existed. The only way to get the match
query to work in a filter context in 1.x is by wrapping it in a query
filter.
Ok, thanks for the clarification!