Sounds like you need to paginate through searches: https://dev.twitter.com/rest/public/timelines
Ratelimits are pretty permissive for search api - You can make lots more calls with App only Auth: https://dev.twitter.com/oauth/application-only (implementation depends on what language & library you’re using)
Won’t make sense to use Streaming API if you plan on changing tracked keywords frequently - Stream API is much better for long running collections.
There are lots of collections of tweets out there you can get (usually come in the form of tweet ids you need to download) - but that depends on what kind of task you’re using the tweets for. Remember the search API is optimised for relevance, doesn’t return all tweets, and is limited to the last ~7 days: could be an issue depending on what you’re doing.