Поиск по нескольким полям, используя упругий поиск + рельсы - PullRequest
0 голосов
/ 05 мая 2018

У меня есть модель записи с полями 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])

Я хочу выполнить поиск по двум полям с помощью упругого поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...