我正在尝试通过 Discourse API 为我的用户构建一个“推荐引擎”,该引擎可以按标签/类别列出特定用户尚未阅读的所有主题。我浏览了各种现有查询,但不知道从哪里开始。你能帮帮我吗?谢谢!
2 个赞
@simon 请在这里添加标签好吗?
1 个赞
您是否检查过 post_timings 表?
类似这样的查询将列出用户从未进入或阅读过任何帖子的类别中的主题。这并不完全是您想要的,但可以作为一个起点。
-- [params]
-- user_id :user
-- category_id :category
SELECT t.id, t.title
FROM
topics AS t
WHERE
category_id = :category
AND user_id != :user
AND last_post_user_id != :user
AND deleted_at IS NULL
AND NOT EXISTS(SELECT 1 FROM post_timings AS p WHERE p.topic_id = t.id AND p.user_id = :user)
请注意,在您的“推荐引擎”中,您可能需要先检查用户是否可以看到该主题,然后才能推荐它。
2 个赞