Ich versuche, eine „Empfehlungs-Engine“ für meine Benutzer über die Discourse-API zu erstellen, die alle Themen auflistet, die ein bestimmter Benutzer noch nicht gelesen hat, nach Tag/Kategorie. Ich habe die verschiedenen vorhandenen Abfragen durchgesehen, aber ich habe keine Ahnung, wo ich anfangen soll. Können Sie mir bitte helfen? Danke!
@simon Könnten Sie bitte hier das Tag hinzufügen?
Haben Sie die Tabelle post_timings überprüft?
Etwas wie dies listet die Themen in einer Kategorie auf, die ein Benutzer noch nie betreten oder einen Beitrag gelesen hat. Es ist nicht genau das, was Sie wollen, aber ein Ausgangspunkt.
-- [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)
Beachten Sie, dass Sie in Ihrer „Empfehlungsmaschine“ wahrscheinlich prüfen müssen, ob der Benutzer das Thema sehen kann, bevor Sie es empfehlen.