Sorry I think there is some confusion due to the fact that we merged queries and filters and renamed the filter cache to query cache, and the query cache to request cache.
In short the query cache caches data for individual queries per segment. This makes it likely to be reused even if you keep adding data since large segments typically get merged very rarely.
On the other hand, the request cache caches entire search requests and is discarded every time you do a refresh, so every one second by default if you keep indexing data. This cache is typically useful if eg. you have an analytics dashboard that many clients keep refreshing, which ends up making the same request to elasticsearch all the time.