Dynamic ranking criteria for one index

Hi, I’m currently working with an index containing data about some places, restaurants, activities.

My goal is to rank the results depending on the current weather state.

I have scores for each index entry like so :

    weather: {
	sunny: 45,         
    winter: 12,

I understood that it was impossible to modify the ranking at search time, (like sending the current weather as a search parameter to tell the index to do the ranking on the fly).

So I figured out two different solutions to this problem :

  • Using replicas or new indexes for each weather state (although I’m not sure which type of replica is the best for this use case)

  • Doing the ranking in the code .

Is there any other solution I’m not aware of ?
If replicas are the best answer, are the virtual replicas suited to this problem ?

Thanks in advance.