Держите идентификационный заказ как в вопросе

Я использую elasticsearch, чтобы получить отображение ид к некоторым ценностям, но крайне важно, чтобы я держал заказ результатов в заказе, который имеют иды.

Пример:

  def term_mapping(ids)
    ids = ids.split(',')
    self.search do |s|
      s.filter :terms, id: ids
    end
  end

  res = term_mapping("4,2,3,1")

Коллекция результата должна содержать объекты с идами в приказе 4,2,3,1...

У вас есть какая-либо идея, как я могу достигнуть этого?

3
добавлено
Просмотры: 2
nl ja de

1 ответы

Если необходимо использовать поиск, можно сортировать иды, прежде чем вы пошлете их в elasticsearch и результаты retrive, сортированные id, или можно создать таможенный сценарий вида, который возвратит положение текущего документа во множестве ид. Однако более простое и более быстрое решение состояло бы в том, чтобы просто использовать Мультидобраться вместо поиска.

1
добавлено
Хорошо, спасибо, я предполагаю, Мультидобираются еще, не поддерживается шиной. Я буду придерживаться своего простого основанного на рубине решения до того времени...
добавлено автор spas, источник