5

私はelasticsearchを使用してIDからい​​くつかの値へのマッピングを取得していますが、結果の順序をIDの順序に保つことが重要です。

例:

  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")

結果コレクションには、ID が 4、2、3、1... の順にオブジェクトが含まれている必要があります。

どうすればこれを達成できるか分かりますか?

4

3 に答える 3

0

検索を使用する必要がある場合は、ID を Elasticsearch に送信する前に並べ替えて、ID で並べ替えられた結果を取得するか、ID の配列内の現在のドキュメントの位置を返すカスタム並べ替えスクリプトを作成できます。ただし、よりシンプルで高速なソリューションは、検索の代わりにMulti-Getを使用することです。

于 2013-01-09T14:49:55.723 に答える