Elasticsearch по умолчанию не дает результатов при загрузке страницы

#ruby-on-rails #search #elasticsearch

#ruby-on-rails #Поиск #elasticsearch

Вопрос:

На моей индексной странице я streams отобразил, и их можно искать с помощью elasticsearch.

   def index

    @streams = Stream.search(params)

  end
  

Когда страница загружается, отображаются все результаты, и пользователь может выполнить поиск, и результаты поиска будут отображены.

Как я могу сделать так, чтобы при загрузке страницы по умолчанию результаты не отображались? Результаты возвращаются только тогда, когда пользователь выполняет поиск.

Ответ №1:

Прежде всего, я бы установил, что params связано с вашим пользовательским поиском. Вы могли бы сохранить его в чем-то вроде params[:search] . Тогда все, что вам нужно сделать, это проверить содержимое params[:search] :

 def index
  @streams = params[:search] ? Stream.search(params[:search]) : Stream.none
end
  

Stream.none это метод rails 4, который возвращает пустое отношение

Комментарии:

1. кажется, это всегда не возвращает результатов

2. «Как я могу сделать так, чтобы при загрузке страницы по умолчанию результаты не отображались» Не возвращает никаких результатов, что вы хотите? Если вы имеете в виду, что даже при params[:search] настройке вы не получаете результатов, мне понадобится дополнительный код, чтобы помочь вам, например, содержимое Stream.search метода