如何根据关键字匹配找到类似的故事?

时间:2010-09-25 15:38:31

标签: php mysql

我有一个表,story_keywords,其中包含与特定故事相匹配的关键字,其中包含以下列:id,story_id,keyword_id。

现在我要做的就是抓住任何与至少两个关键词共享的故事,我将从今天获取所有故事的初始循环中输出主要故事。

  

//获取关键字_id列表   主要故事

     

//获取所有故事的列表,以及他们的故事   keyword_ids,在我循环时匹配   通过主要故事keyword_ids

但是我被卡住了,出于某种原因我无法从逻辑上考虑这一点。有人可以提供建议吗?我不确定我能提供哪些其他信息以使其更清楚。

我可以从主要故事中获得与1个关键字匹配的故事列表,但我希望它匹配至少两个关键字以输出相似的故事。

1 个答案:

答案 0 :(得分:2)

您可以使用keyword_id IN(...)子句查找与您的主要故事共享任何相同关键字的故事。要查找具有最高相关性的相关故事,您只需按关键字匹配数按降序对结果进行排序。

某些大致喜欢:

SELECT story_id, COUNT(story_id) AS relevancy 
FROM story_keywords 
WHERE keyword_id IN (...) 
GROUP BY story_id 
HAVING relevancy > 2 
ORDER BY relevancy DESC
LIMIT 5

您可能还想添加另一个WHERE子句以排除原始story_id