Elasticsearch запрашивает несколько индексов, ограничивая поля одного индекса - PullRequest
0 голосов
/ 13 июня 2018

У меня есть класс Autocomplete с методом результатов, который запрашивает две разные модели для возврата данных.Это частично работает отлично, но с одной серьезной проблемой.

  def results
    Searchkick.search @query, index_name: [Location, DiveCenter]
  end

Мне нужно ограничить число попаданий, возвращаемых из индекса DiveCenter из-за способа, которым я настроил индекс.Он настроен таким образом, потому что пользователь либо нажимает на DiveCenter и попадает на страницу показа DiveCenter, либо нажимает на местоположение и принимает /search?(city | country)=value.

  searchkick searchable: [:name, :city, :state, :country]
  def search_data
    {
      name: name,
      city: location.city,
      state: location.state,
      country: location.country
    }
  end

В общем, мне нужно вот что:

  def results
    Searchkick.search @query, index_name: [Location, DiveCenter], fields: ['location.city', 'location.state', 'location.country', 'dive_center.name']
  end

1 Ответ

0 голосов
/ 10 августа 2018

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

Один из подходов - отфильтровать результаты в Ruby.

Другой подход заключается в использовании множественного поиска. для ограничения результатов для дайв-центров.

...