def post_filter(params = nil, &block)
      params = Filters.new(&block).__render__ if block
      chain { criteria.update_post_filters params }
    end
def post_filter(params = nil, &block)
      params = Filters.new(&block).__render__ if block
      chain { criteria.update_post_filters params }
    end
Adds one or more post_filter to the search request
 Internally post_filters are stored as an array
 While the full query compilation this array compiles
 according to `:post_filter_mode` option value

 By default it joins inside `and` filter
 See `#post_filter_mode` chainable method for more info.

 Also this method supports block DSL.
 See `Chewy::Query::Filters` for more info.

 @example
   UsersIndex.post_filter(term: {name: 'Johny'}).post_filter(range: {age: {lte: 42}})
   UsersIndex::User.post_filter(term: {name: 'Johny'}).post_filter(range: {age: {lte: 42}})
   UsersIndex.post_filter{ name == 'Johny' }.post_filter{ age <= 42 }
     # => {body: {
            post_filter: {and: [{term: {name: 'Johny'}}, {range: {age: {lte: 42}}}]}
          }}

 If only one post_filter was specified, it will become a result
 post_filter as is, without joining.

 @example
   UsersIndex.post_filter(term: {name: 'Johny'})
     # => {body: {
            post_filter: {term: {name: 'Johny'}}
          }}