Hardware recommendation about ES to avoid "Data too large"

I'm using ES in a machine which has 12G physical memory, when running lower size of data, everything is OK. But as long as the data size and document counts increasing, circuit breaker happens more and more frequently.
After searching FAQs, most recommended solution is:

  1. increase breaker limit
  2. disable or enable use_real_memory
  3. set proper GC
    ...
    But in my opinion, they are only the temporary solution, because as long as the data size in creasing or querying size increasing, the circuit breaker will take place one day.
    From my point of view, the best solution is to using proper hardware configuration to match proper querying size or data size.
    So my question is: is there some guide line about how to setup our hardware environment to match proper production situation? Such as memory recommendation when querying count higher than 1million, or data size is higher than 5GB, what ever.
    Thanks