Elastic Search Rails находят связанные атрибуты модели

Я использую Elastic Search в моем проекте Rails. Я делаю полнотекстовый поиск в режиме реального времени с использованием элемента упругости поиска модели. Предположим, что модель A принадлежит модели B. Если я выполняю поиск по модели AI, я получаю 10 записей A на основе моих параметров поиска.

A.search(x) => Gives 10 records which includes all attributes of A.

Но когда я получаю доступ к модели B через A, например: ABsome_attrib, я получаю

 undefined method B for <Elasticsearch::Model::Response::Result>

Как загрузить ассоциации в ElasticSearch?

Также я хочу, чтобы все записи в результате поиска. Как указать match_all в методе поиска?

2 ответа

Для ассоциированной модели см. эту ссылку https://github.com/elastic/elasticsearch-rails/blob/master/elasticsearch-model/examples/activerecord_associations.rb

Include Elasticsearch::Model and callbacks в беспокойстве и сделать отображение индекса.
Включить модуль в обе ассоциированные модели.

Примечание: не забудьте импортировать модель.

Вы можете настроить ассоциации моделей с помощью метода as_indexed_json. Вот код псевдо для этого:

def as_indexed_json(options={})
 self.as_json(
   include: {
     b: { only: :col1}
   }
 )
end
Другие вопросы по тегам