3

特定のエンティティのタグを保存するためにredisを使用しています。データの例:

+-------------+--------------------------------+
|     key     |             value              |
+-------------+--------------------------------+
| book:1:tags |     [python, ruby, rails]      |
+-------------+--------------------------------+
| book:2:tags |     [fiction, fantasy]         |
+-------------+--------------------------------+
| book:3:tags |     [fiction, adventure]       |
+-------------+--------------------------------+

特定のタグが付いたすべての本、つまり でタグ付けされたすべての本を見つけるにはどうすればよいfictionですか?

4

1 に答える 1

5

逆インデックスを自分で維持する必要があります。投稿したキーに加えて、逆参照を作成する必要があります。

tag:python => [1]
tag:ruby => [1]
tag:rails => [1]

tag:fiction => [2, 3]
tag:fantasy => [2]
tag:adventure => [3]

次に、やりたいことをするのは簡単です。しかし、その仕事に別のツールを使用することを検討する必要があるかもしれません。たとえば、MongoDB は配列のインデックス作成とクエリを効率的に行うことができます。

于 2012-07-20T18:43:50.217 に答える