0

我有一个很大的文章表,并且想要基于某种相似性来获取相关文章 - 例如我有 2 篇文章;第一篇文章的标题是“Article Part 1”,第二篇文章的标题是“Article Part 2”。

我想要有效地输出基于标题的文章最可能匹配的内容,无论它是当前文章的变体,还是文章的延续或修改。

例子:

 article_title  friendly_url   id
 Article 1      article-1      013
 Article 2      article-2      023
 Example 1      example-1      034
 Example 3      example-3      016
 Example 2      example-2      015  

所以我理想情况下想要一种基于标题的字符串匹配,那么“Article 1”相关文章将是“Article 2”或“Example 3”相关文章将是“Example 1”并且“示例 2”。

注意:标题可以超过 2 个单词,并且可能包含特殊字符,例如,标题可能是“如何:教程第 1 部分”,然后它将与“如何:教程第 2 部分”相关。

我的想法是我可以使用 MySQL 查询来执行此操作,但环顾 PHP 可能有一些更好的功能。该表包含 1300 多篇文章,因此通过从列表中选择与其相关的文章来手动进行此操作并不是一个可行的解决方案。

提前喝彩。

4

1 回答 1

1

规范化您的数据库,它将使此类事情变得更加容易。我的意思是在你写链接文章的 id 的地方创建一个自己的行。喜欢:

article_group  article_title  friendly_url   id
0              Article 1      article-1      013
0              Article 2      article-2      023
1              Example 1      example-1      034
1              Example 3      example-3      016
1              Example 2      example-2      015  

然后,您可以为每个文章组的名称以及其他信息创建一个自己的表格。如果标题始终相同,但只是有一个数字不同,那么您可以将其放入组中并保留上表中的数字,那么friendly_url有什么意义吗?后面的问题取决于你。

于 2013-10-28T02:12:02.737 回答