I'm not entirely sure why we only have equalTo for 2 specific types.. is the idea to fill out a collection of a bunch of useful predicates? Should we in that case break provided predicates into their own class?

Not certain I have a total picture of how everything hooks together, but can this break if dictionary encoding is in use? If this is applied after dictionary decoding, that's fine, but we should create an issue to add ability to apply dict filters before decoding for further gains. We should do that for both equality and regexes.