1

ユーザー インデックス:

ThinkingSphinx::Index.define :user, with: :active_record
  ...
  has :group_id
end

グループ ID : 450 に属するすべてのユーザーを取得したい。そのグループには約 25000 人のユーザーがいます。

私がする時、

User.search_for_ids({:page=>1, :per_page=>1000000, :with=>{:group_id => 450}})

25000 個の ID を返すのに約 4 秒かかります。

不足しているものはありますか、または結果をより速く取得するために改善できることはありますか?

編集:

参照: http://www.mysqlperformanceblog.com/2013/01/15/sphinx-search-performance-optimization-attribute-based-filtering/

4

1 に答える 1

1

正直なところ、Sphinx がこのような大きなページ サイズでどれだけうまく機能するかはわかりませんが、代わりにデータベースから直接クエリを作成してみませんか?

User.where(:group_id => 450).pluck(:id)
于 2013-10-06T11:36:38.120 に答える