2011-09-05 91 views
0

我有一个小的PHP文章系统,我想为每篇文章添加一个类似文章列表(显然会非常频繁地加载)。
我想我应该使用MATCH AGAINST以基于文章标题填充相似的文章列表。
事情是,我会如何去实际执行它?
正在对文章的每个视图执行MATCH AGAINST查询过于密集,或罚款?
如果它太密集,有什么替代方案?MySQL MATCH AGAINST效率

谢谢。

+0

先做一些阅读 - http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html – ajreal

+2

只有50张幻灯片:“MySQL中的实用全文搜索”http:// www。 slideshare.net/billkarwin/practical-full-text-search-with-my-sql – sanmai

+0

@sanmai那么,基本上在每篇文章页面加载中使用MATCH AGAINST,应该不是问题? – Lior

回答

1

如果您想查找与当前文章标题类似的文章,请尝试MATCH AGAINST并查看其效果。每次添加文章(或标题被修改)时,运行这样的查询不应该是性能问题。

SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('@newtitle'); 

但是,如果你想找到根据文章的全文中的类似文章,你可能想尝试计算文章机构之间similarity,看看它是否提供了更好的结果的话,MATCH AGAINST title

一般,首先我会担心找到真正类似的文章,然后我可能会开始担心表演。祝你好运。

+0

您的意思是,每次添加或编辑文章时,我应该保存该文章的相似文章?在这种情况下,将不会显示与该文章相似的新文章,并且每篇文章都会显示相同的文章。 – Lior

+0

嗯,我猜如果article2是更新的文章1,那么你是正确的在那篇文章2将不会被分配到文章1相似。另一方面,第1条将被分配到第2条中类似。那么这有什么问题? – bpgergo

+0

那么,从现在起一年后,这篇旧文章将显示旧文章的相似之处。我想我可以忍受这一点,我只是希望它至少每隔一段时间就会更新一次。会在每篇文章视图上运行MATCH AGAINST查询(即每次为文章创建类似文章列表)是否过于密集? – Lior