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