2017-07-12 1 views
0

J'utilise Searchkick pour rechercher dans les dossiers des utilisateurs. Je reçois le même ordre pour les résultats à chaque fois. J'ai parcouru la documentation mais je n'ai rien trouvé. Voici la mise en œuvre que j'utilise.Randomiser les résultats de la recherche

search_params = {} 
search_params[:where] = where  #where holds all the conditions for the search 
search_params[:order] = {user_id: :desc} 
user_matches = User.search "*", search_params 
+1

Après avoir obtenu les résultats 'Searchkick', vous pouvez les mélanger via des rails:' user_matches.results.shuffle' – BigRon

Répondre

1

A rails chemin:

user_matches.results.shuffle 

Une façon Searchkick:

seed = current_user.id 
# setting seed to the user_id will make the random results consistent for that user... 
# ... if you always want random results than you should make seed = Time.zone.now.to_i 
User.search("*", body: {query: {function_score: {random_score: {seed: seed}}}}) 

Pour le chemin de searchkick est ici le elasticsearch reference

Voici un autre exemple dans Searchkick issues