2015-02-20 3 views
1

Прямо сейчас приложение Rails позволяет пользователям искать только поля базы данных. Они могут загрузить изображение, а затем выполнить поиск с именем. Я также извлекаю метаданные и сохраняю их в файлах YAML. Таким образом, для fileA метаданные хранятся в файле fileA.yml.Индексация немодельных объектов для поиска в Rails с Elasticsearch

С помощью Elasticsearch я смог проиндексировать файл таблицы и разрешить пользователям выполнять поиск в соответствии с файловым типом, именем файла и т. Д. (Независимо от того, что хранится в БД). Тем не менее, я хотел бы также предоставить поиск метаданных, поэтому как мне также индексировать файл YAML этого файла?

Я в порядке с переключением на другой поисковый провайдер, например, Solr, если это необходимо.

ответ

2

Вы не указываете, какую библиотеку (elasticsearch-rails, searchkick и т. Д.) Вы используете для интеграции с elasticsearch, но все они позволяют настраивать данные, которые отправляются для индексирования.

Например, с elasticsearch рельсов переопределить метод as_indexed_json, например

def as_indexed_json(options={}) 
    as_json(options).merge(data_from_yaml) 
end 

для searchkick, вы могли бы сделать

def search_data 
    as_json.merge(data_from_yaml) 
end 
+0

Я использую поиск кик камень интегрировать упругий поиск. Могу ли я выполнить настройки с этим камнем или мне нужно использовать эластичный камень для модели поиска? –

+0

Не уверен, что модель elasticserach - это драгоценный камень, но это то, что я имел в виду: https://github.com/elasticsearch/elasticsearch-rails/tree/master/elasticsearch-model –

+0

@SwaathiK да, вы можете сделать это с помощью searchkick - метод просто должен иметь другое имя –

Смежные вопросы