Поиск связанных тегов - PullRequest
       2

Поиск связанных тегов

2 голосов
/ 07 ноября 2011

Я делаю сайт с конкретными публикациями, в которых есть теги, созданные пользователем.Моя база данных выглядит так:

Qid              Tag
3                Happy
3                Sad
3                Funny
6                Happy
6                Delicious
8                Angry

Я хочу найти соответствующие теги.

Мой план - ввести тег в качестве ключа (например, Happy)и затем выходят Sad, Funny и Delicious.

Но я хочу только максимум, скажем, 5 или 6.

В реальной базе данных есть еще многоиз этих записей, но я не знаю, как выбрать между топ-5 или 6.

Мои вопросы:

  1. Как мне сделать запрос правильно, чтобы просто подойтисо всеми связанными тегами?
  2. Как бы я сузил свои лучшие результаты поиска до 5 или 6?
  3. Есть ли еще лучший способ сделать связанные теги, о которых я не думал (например,словарь)?

Кстати, он написан на PHP, поэтому я тоже могу там выполнять постобработку.

1 Ответ

1 голос
/ 07 ноября 2011

Чтобы дать общий ответ на ваш вопрос ...

  1. Вам нужно найти QID тега, затем выбрать все теги с этим QID - это, конечно, зависит от того, как вы храните метаданные публикации в вашей базе данных

  2. Если под «лучшими результатами поиска» вы подразумеваете наиболее часто используемые теги, то вам нужно добавить еще один столбец в таблицу - что-то вроде частоты. Затем увеличьте это значение на единицу при каждом использовании тега. Но, чтобы найти пятерку лидеров на основе этого предположения, вы должны сделать что-то вроде:

    SELECT * FROM tag_table
    WHERE qid = 3            /* Where 3 is just an example                     */
    ORDER BY frequency DESC  /* so the most used are at the top of the results */
    LIMIT 5;                 /* select only the first five results             */
    
  3. Я не уверен, что было бы лучше, если честно. Без дополнительной информации это трудно понять.

...