У меня есть модель записи с полями state (integer) и date_of_dervice_provided (date).
Я хочу выполнить поиск по двум полям ниже.
1) состояние перечисления: [: создано,: оценено,: подписано,: утверждено]
2) date_of_dervice_provided
Я могу осуществлять поиск с помощью направляющих ActiveRecord, как показано ниже.
@records = Record.all
@records = @records.where(state: params[:state]) if params[:state]
@records = @records.where('extract(year from date_of_service_provided) = ?', params[:year]) if params[:year]
Я хочу найти его с помощью упругого поиска
Чтобы реализовать упругий поиск, я добавил следующие вещи
Gemfile
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
Record.rb файл модели
require 'elasticsearch/model'
include Elasticsearch::Model
include Elasticsearch::Model::Callbacks
settings do
mappings dynamic: false do
indexes :state, type: 'integer'
indexes :date_of_service_provided, type: 'date'
end
end
Я немного знаком с упругим поиском. Я могу искать с помощью упругого поиска, как показано ниже
@elastic_records = Record.all
@elastic_records = @elastic_records.search(params[:state])
Я хочу выполнить поиск по двум полям с помощью упругого поиска.