我想通过查找与相关帖子共有标签数量最多的帖子来查找相关帖子。我可以在 SQL 查询中执行此操作,但由于我将有成千上万的帖子,每个帖子都有几十个标签,我想知道 CouchDB 是否会是一个更好的选择?如果是这样,它将如何在 CouchDB 中工作?
相关地考虑这个问题,这里是结构:
post: id, (other post data)
tag: id, (other tag data)
post_tag: post_id, tag_id
SQL 查找帖子#X 的前 10 个最相关的帖子:
select r.post_id
from post_tag p join post_tag r on p.tag_id = r.tag_id
where p.post_id = X and r.post_id != X
group by r.post_id
order by count(*) desc
limit 10
此查询提供与帖子 X 相同标签最多的前 10 个帖子。
我可以更有效地从 CouchDB 获得相同的结果吗?如何?