1

如果对象中键的值是列表,我如何查询 cassandra 或 riak 中的数据

example=> Genre[Key] : Pop, rock [Values]

我想列出所有类型为摇滚等的歌曲。

我可以使用 Cassandra/Riak 的二级索引来做到这一点吗?

4

2 回答 2

2

是的,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
于 2012-05-10T18:58:09.777 回答
0

Riak Search可以轻松处理这个问题,但您可能需要确保您的条目被正确索引,例如通过将列表连接到二进制字符串。

于 2012-05-10T16:58:27.063 回答