2012-03-13 5 views
-1

MongoDBから来るrubyオブジェクトを比較するアルゴリズムがあります。大半の時間が費やされ、結果(〜1000)をとり、それらに重みを割り当て、それらを基本オブジェクトと比較します。この処理には、1000個のオブジェクトに対して約2秒かかります。その後、私たちはオブジェクトを体重で注文し、トップ10を取る。Rubyオブジェクトの操作

最初の試合の数が増え続けるのを考えると、私はRubyでマッチを比較しソートするより効率的な方法を探している。

これはあいまいですが、その人物に関するデータの配列を持つユーザーオブジェクトであると仮定し、それらのユーザーを1人のユーザーと比較して、そのユーザーに最適なものを見つけようとします。

+2

あなたはそうです、それは完全にはわかりません。 –

+0

現在使用している比較プロセスは正確に何ですか? – kclair

+0

比較は、各ユーザーの文字列を含む配列セット間で行われます。基本的には、各配列に共通する要素の数を調べ、合計で5つの配列の比較があります。 – user577808

答えて

1

重量の保管/キャッシングは考えましたか?重みが各ユーザーの属性にのみ依存し、そのユーザーの外部の値には依存しない場合は、これはうまく機能します。

また、ユーザーと「ベース」ユーザーに関連付けられた重みを含む計算はどれくらい複雑ですか?複雑な場合は、2つのノード/オブジェクト間の関係に固有のデータを格納できるグラフデータベースの使用を検討してください。

+0

良い点。各ユーザーに関連付けられたさまざまな配列間の比較。彼らは変化するが、トンではない。だから、UserAには接続= [....]、UserBには接続= [...]があります。 connections配列には文字列IDが入っています。それで、2を比較して共通のコネクション数を調べます。私が言及したように、接続は毎晩更新されますが、多くは変更されません。 – user577808

関連する問題