Как получить похожие сообщения, используя PHP и MySQL

0

Каков наилучший способ получить связанные сообщения с помощью PHP и MySQL? Второй вопрос заключается в том, как получить верхние 5 связанных записей из сравнения тегов и категорий из каждого сообщения. Мои таблицы MySql перечислены ниже.

CREATE TABLE categories ( 
id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
parent_id INT UNSIGNED NOT NULL DEFAULT 0, 
category VARCHAR(255) NOT NULL, 
url VARCHAR(255) NOT NULL,
PRIMARY KEY (id), 
INDEX parent (parent_id),
UNIQUE KEY(parent_id, url)
);

CREATE TABLE posts_tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag_id INT UNSIGNED NOT NULL,
users_posts_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);


CREATE TABLE users_posts (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
title TEXT NOT NULL,
posts_content LONGTEXT NOT NULL,
PRIMARY KEY (id)
);
  • 0
    1) Как вы определяете связанные посты? 2) Топ 5 на основе чего? Вы перечислили таблицу categories , но нет никакого отношения к другим перечисленным таблицам ...
  • 0
    @OMG Пони Тогда, как бы я определить соответствующие сообщения.
Теги:

2 ответа

0

SQL предназначен для поиска данных и полезен для извлечения данных на основе объективных критериев, где есть правильный или неправильный ответ. Нет объективной оценки того, что делает сообщение "связанной записью", поэтому это не то, что вы можете эффективно делать с SQL.

Кластеризация документов, что означает группирование связанных документов, представляет собой большую и активную область исследований, так что хорошее место для начала, но реализация что-то себе будет очень сложно. В зависимости от языка, который вы используете, вы можете посмотреть библиотеки кластеризации. Например, если вы используете Java (или все, что работает на JVM, или вы можете настроить веб-службу для кластеризации), вы можете посмотреть на Weka.

0

Уместность публикации - это большая область исследований без хорошего и умного решения. Вы можете назначить каждому сообщению +0.1 баллов для соответствия тегам, +0.4 для соответствия категории. Позже вы также можете рассмотреть содержимое сообщения. Затем вы можете сортировать по этому значению.

Это не то, что вы можете легко сделать в 1 sql-запросе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню