Redis и теги для большого видео сайта - PullRequest
1 голос
/ 09 октября 2011

Мой вопрос касается тегов и поиска для сайта видеоклипов на основе ламп / флеш.

У меня есть apx 100 000 видео, которые я хочу организовать с помощью Redis.

Каждое видео имеетследующее:

Заголовок, длина, теги

Я добавляю клипы со следующим

hset video:id1 title  "A funny clip"
hset video:id1 length "22 secs"
hset video:id1 tags   "funny,accident,cat"

hset video:id2 title  "Falling of a chair"
hset video:id2 length "33 secs"
hset video:id2 tags   "funny,chair,kids"

hset video:id3 title  "Pool party"
hset video:id3 length "17 secs"
hset video:id3 tags   "funny,pool,accident"

Что мне теперь делать, чтобы разрешить поиск по тегам.

Я бы хотел выполнить поиск по всем клипам, которые имеют определенные теги.

Ответы [ 3 ]

3 голосов
/ 09 октября 2011

Вы идете не в ту сторону.В Redis вы как бы должны думать задом наперед.Если вы хотите выполнить поиск определенного тега, вам необходимо сопоставить тег с объектами, а не с объектом на теги.В Redis вам нужно определить свои собственные индексы!

Так что если вы хотите иметь возможность искать все видео с определенным тегом, создайте набор для каждого тега и добавьте идентификаторы видео с этим тегом внабор.

2 голосов
/ 09 октября 2011

Лучше всего создать список для каждого тега, в который вы добавляете идентификатор видео

rpush funny id1 id2 id3

РЕДАКТИРОВАНИЕ:

Вы можете найти идеи о том, как искать неполные теги здесь:

http://antirez.com/post/autocomplete-with-redis.html

0 голосов
/ 09 октября 2011

Что мне теперь делать, чтобы разрешить поиск по тегам.

Redis не поддерживает какие-либо специальные запросы данных.Хотя есть команда KYES , которая позволяет искать ключи по определенному шаблону, она предназначена только для отладки или аналогичных операций, поскольку ее производительность зависит от количества ключей в вашей базе данных.

Однако вы можете создать выделенные структуры наборов для ваших тегов, где каждый набор будет содержать коллекцию идентификаторов видео, назначенных определенному тегу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...