QueryStringQuery vs Filter Query

I have a simple queryStringQuery that is much faster than (what I think is) an equivalent boolean query. Does anyone know why this might be in general? I am searching on approx 100 fields and am using wildcards as well (which explains slowness to me, but not the difference). Does anyone know why this might be?

ES can store the result of the last query until the cache is full. So you may feel like this if you try to make the same query .