Rails Searchkick Elasticsearch для поиска нескольких слов - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть модель продукта, в которой есть имя, пол, описание и т. Д., А столбцы включены в индекс эластичного поиска с помощью метода search_data .

Давайте предположим, что у меня есть продукт со следующими значениями

name: 'No Boyfriend No Problem Crop Jumper'
gender : 'women'
description: 'Best crop jumber for now'

Когда я ищу с термином "женский джемпер"

Продукт не отображается в результатах поиска. Я пытаюсь найти товары по следующему запросу

@products = Product.search(
              params[:q],
              fields: [:gender, :name, :description],
              match: :word_start,
              page: params[:page],
              per_page: Product::PAGE
            )

Как мне обновить поиск товаров, чтобы результаты поиска "женский урожай перемычек" включали продукт выше.

Спасибо

1 Ответ

0 голосов
/ 06 сентября 2018

Похоже, это невозможно на данный момент. Тем не менее, вы можете сделать следующее, и это должно работать:

def search_data
  {
    name: name,
    gender: gender,
    description: description,
    all_fields: [name, gender, description].compact.join(' ')
  }
end

Тогда вы можете просто выполнить поиск в поле all_fields в вашем запросе.

...