Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP和MySQL获取相关帖子_Php_Mysql - Fatal编程技术网

如何使用PHP和MySQL获取相关帖子

如何使用PHP和MySQL获取相关帖子,php,mysql,Php,Mysql,使用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, PRI

使用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分的标签匹配,为+0.4分的类别匹配。 以后你也可以考虑文章内容。 然后您可以按此值进行排序


在1 sql查询中,这不是一件容易做到的事情。

sql用于数据检索,并且对于根据客观条件检索数据非常有用,因为在这些条件下,答案是正确的或错误的。没有客观的标准来衡量一篇文章是如何成为“相关文章”的,因此单凭SQL并不能有效地做到这一点


,这意味着对相关文档进行分组,这是一个庞大而活跃的研究领域,因此这是一个很好的起点,但自己实现某些东西将非常困难。根据您使用的语言,您可以查看集群库。例如,如果您正在使用Java(或在JVM上运行的任何东西,或者您可以设置一个web服务来进行集群),您可以考虑使用。

1)如何确定相关帖子?2) 前五名基于什么?您列出了一个
类别
表,但与列出的其他表没有关系…@OMG Ponies那么我将如何确定相关帖子。