如何获得相关行的组合

时间:2013-10-28 02:00:33

标签: php mysql

我有一个很大的文章,并希望根据某种相似性得到相关文章 - 例如我有2篇文章;第一篇文章的标题是“文章第1部分”,第二篇文章是“文章第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  

所以我理想情况下会根据标题进行一种字符串匹配,因此,“第1条”相关文章将是“第2条”或“示例3”相关文章将是“示例” 1“和”示例2“。

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

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

提前干杯。

1 个答案:

答案 0 :(得分: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有什么意义吗?后面的问题取决于你。