オブジェクトのキーの値がリストの場合、cassandraまたはriakのデータをクエリするにはどうすればよいですか?
例=>ジャンル[キー]:ポップ、ロック[値]
ロックなどのジャンルの曲を全部リストアップしたいです。
Cassandra / Riakのセカンダリインデックスを使用してこれを行うことはできますか?
オブジェクトのキーの値がリストの場合、cassandraまたはriakのデータをクエリするにはどうすればよいですか?
例=>ジャンル[キー]:ポップ、ロック[値]
ロックなどのジャンルの曲を全部リストアップしたいです。
Cassandra / Riakのセカンダリインデックスを使用してこれを行うことはできますか?
はい、Riakのセカンダリインデックスでこれを処理できます。
オブジェクトをRiakに保存し、適切なジャンルでインデックスを付けるだけです。
データが次のようになっているふりをします(JSON):
{ "song":"My awesome song", "genres":["rock", "alternative"] }
オブジェクトを保存し、ジャンルのバイナリインデックスを使用します(例:curlを使用)。
curl -v -X PUT \
-d '{ "song":"My awesome song", "genres":["rock", "alternative"] }' \
-H "Content-Type: application/json" \
-H "x-riak-index-genre_bin: rock" \
-H "x-riak-index-genre_bin: alternative" \
http://127.0.0.1:8098/riak/mybucket/mykey1
すべての曲を「ロック」でインデックス化するには、次のようにします。
curl http://127.0.0.1:8098/buckets/mybucket/index/genre_bin/rock
Riak Searchはそれを簡単に処理できますが、たとえばリストをバイナリ文字列に連結するなどして、エントリが適切にインデックス付けされていることを確認する必要があります。