ElasticSearch: индексировать результаты метода с аргументами.

Я работаю над приложением Rails, которое должно масштабироваться как минимум до 100 тыс. пользователей. Но когда мы заполнили нашу БД достаточным количеством данных, она значительно замедлилась, и мы планировали использовать ElasticSearch как лекарство. Мой вопрос в основном касается страницы со списком пользователей, которая есть на моем сайте, где конкретная функция интенсивно использует ЦП, и мы хотим проиндексировать эту функцию.

Итак, вот загвоздка. У этой функции есть аргументы, которых мы не можем избежать, и я не нашел ни одного примера, который мог бы подсказать мне, как я могу передавать аргументы индексированным функциям.

Вот вопрос, который мне показался полезным: индексировать результаты метод в ElasticSearch (Tire + ActiveRecord)


person VoodooChild92    schedule 18.09.2014    source источник


Ответы (1)


вы можете попробовать написать что-то вроде:

def to_indexed_json
  { field: method(args) }.to_json
end

или даже без to_indexed_json вы могли бы написать:

mapping do
  indexes :field_name
end

def field_name
  your_method(args)
end
person Igor Guzak    schedule 18.09.2014