1

Riak で配列/リストを処理する効率的な方法があるかどうか疑問に思っていました。現在、配列全体を文字列として保存し、文字列を検索して、配列に要素が存在するかどうかを調べています。

ID (キー) : int[] (値)

また、値配列に要素が含まれるすべてのキーを提供するマップ/リデュースクエリを作成するにはどうすればよいですか

たとえば、1 : 2,3,4 2 : 2,5

M/R クエリを作成して、値に 2 が含まれるすべてのキーを取得するにはどうすればよいでしょうか。この場合、結果は 1,2 になります。

どんな助けでも大歓迎です

4

1 に答える 1

1

リスト内の特定の要素を検索し、LevelDB バックエンドを使用している場合、配列の値を含むセカンダリ インデックスを作成できます。Riak のセカンダリ インデックスには複数の値が含まれる場合があり、等価性を検索できます。これにより、MapReduce に頼ることなく、配列内の単一の要素を検索できるはずです。

リスト内の複数の要素またはその他のパラメーターに基づいてより複雑なクエリを作成する必要がある場合は、セカンダリ インデックスに基づいてレコードのサブセットを取得し、クライアント側でさらに処理するか、場合によっては MapReduce ジョブを使用することもできます。

于 2013-04-01T20:44:08.713 に答える