Я использовал gem 'searchkick'
для поиска в своем приложении.
вот моя ассоциация и настройки searchkick.
продукт.rb
belongs_to :sub_category
belongs_to :brand
belongs_to :product_type
has_one :category, through: :sub_category
searchkick match: :word_start,word_start: [:name], suggest: [:name]
scope :search_import, -> { includes(:brand, :sub_category, :category, :product_type) }
def search_data
{
name: name,
category_name: category.name,
sub_category_name: sub_category.name,
brand: brand.name,
product_type: product_type.name
}
end
Я не знаю, как работает searchkick. но я хочу показать название категории, название подкатегории и название типа продукта в результатах поиска.
Например,
У меня есть список алкогольных продуктов, которые относятся к разным категориям, таким как пиво, вино, виски и т. д.
если я ищу пиво, оно должно показывать пиво в результатах поиска, потому что пиво — это категория, связанная с продуктом. Мне не нужны продукты, связанные с категорией пива, я хочу, чтобы в результатах поиска была категория пива.
вот мой запрос для поискового запроса
response = Product.search( params[:query], suggest: true, fields: ["name^10", "description"], limit: 5, operator: "or",misspellings: {below: 5} ).results
это аналогичная функциональность любого приложения электронной коммерции, например, если я ищу iPhone 7
в приложении Flipkart, он покажет iPhone 7 как категорию в результатах поиска, если я нажму на это, все продукты, связанные с iPhone 7, будут отображаться на одной странице.
я не знаю, как этого добиться, любая помощь будет оценена.