0

私は不動産に関する情報を表示するシステムに取り組んでいます。サーバーにjsonファイルとして保存されたデータを使用してangularで実行され、1日1回更新されます。

ベッドルーム、バスルーム、価格、住所のフリー テキスト フィールドの数にフィルターをかけています。すべて非常に機敏ですが、問題はアプリのロード時間です。これが私がRedisを見ている理由です。問題は、いくつかの異なるフィルターを実行してデータを取得する方法が頭に浮かばないことです。

次のようなデータがあるとしましょう: (簡単にするために多くのフィールドを省略しています)

id  beds  price
0   3     270000
1   2     130000
2   4     420000

等...

1 つはデータセット全体を保持するため、もう 1 つはベッドルームのインデックスを作成するため、もう 1 つは価格用です。

beds  id
2     1
3     0
4     2

価格も同じです:

price   id
130000  1
270000  0    
420000  2

次に、SINTER を使用して重複セットを返すことができると考えていました。300000 未満の寝室が 2 つ以上ある家を探しているとしましょう。

ベッドルーム セットから、ベッド > 2 の ID 0,2 を取得します。

設定された価格から、価格 < 300000 の ID 0,1 を取得します

したがって、共通 ID は 0 であり、これをメイン データセットで検索します。

理論上はすべて良さそうに思えますが、Redis の初心者である私には、それを実現する方法がわかりません。

アドバイスをいただければ幸いです。

4

1 に答える 1

1

あなたは正しい道を進んでいます。セット + ソートされたセットが正しい答えです。

あなたが望むかもしれないすべての情報の2つのソース:

これらのリソースはどちらもプログラミング言語として Python を使用していますが、第 7 章は Java に翻訳されています: https://github.com/josiahcarlson/redis-in-action/ (Java パスに移動してコードを確認してください)。

... とはいえ、通常のリレーショナル データベース (特に、Postgres のような Geo 処理が組み込まれているデータベース) では、このデータを簡単に処理する必要があります。リレーショナル データベースを検討したことがありますか。

于 2013-09-20T07:41:25.093 に答える