Möglichkeit, Tags mit < N Themen zu löschen

Ich bin gerade auf diese großartige Funktion „Nicht verwendete Tags löschen" gestoßen. Und das hat mich auf mehr neugierig gemacht!

Fortsetzung der Diskussion aus Ein umfassender Leitfaden zu Discourse-Tags:

Wir haben viele Tags mit „Anzahl: 1", da die Erstellung von Tags überhaupt nicht eingeschränkt ist und einige Leute sie einfach wie Hashtags behandeln. Ich bin immer noch der Meinung, dass die Berechtigungen für Tags offen bleiben sollten, aber es wäre schön, den Garten gelegentlich leichter ausmisten zu können.

Ich würde gerne Wege finden, die Leute dazu zu ermutigen, Tags als Mittel zur „Gruppierung" verwandter Themen zu betrachten und nur dann neue Tags zu erstellen, wenn sie denken (oder wissen!), dass diese mehr als einmal verwendet werden.

Aber in der Zwischenzeit halte ich es für eine schöne Verbesserung, die wir nutzen würden, die bestehende Funktion so zu erweitern, dass man Tags löschen kann, die von weniger als __ Themen verwendet werden.

4 „Gefällt mir“

Noch eleganter wäre es, wenn man eine Einstellung vorfinden könnte, die automatisch Tags durchsucht und auf Basis folgender Kriterien löscht:

count < N && topic_last_updated > X Monate her

Im Grunde gibt man Tags die Chance, sich zu etablieren. Ihre Lebensdauer wird verlängert, wenn neue Themen vor Ablauf einer bestimmten Frist erstellt werden. Wenn jedoch seit mehr als beispielsweise 3 Monaten keine neuen Themen erstellt wurden und das Tag weniger als 5 Themen umfasst, wird es einfach entfernt.

6 „Gefällt mir“

Ich denke auch, dass dies gute Vorschläge zur Verbesserung der Tag-Bereinigungsfunktion sind, @neil.

2 „Gefällt mir“

Ich habe diesen Button auch noch nie gesehen, und ich stimme zu, dass eine automatische Bereinigungsfunktion nützlich wäre. Sie sollte jedoch darauf achten, keine nur für das Personal freigegebenen Tags zu löschen. Es gibt wahrscheinlich weitere Fälle, in denen bestimmte Tags nicht automatisch gelöscht werden sollten.

2 „Gefällt mir“

In der Zwischenzeit finden Sie hier eine #plugin:data-explorer-Abfrage, die helfen kann, Kandidaten für das Löschen von Tags zu identifizieren:

-- [params]
-- int :months_since_used = 24
-- int :max_topic_count = 50

with
t as (
  select 
    current_date::timestamp - (:months_since_used * (INTERVAL '1 months')) as cutoff_date
),
topic_tag_dates as (
  select tags.id, tags.name, tags.topic_count, topics.last_posted_at as last_used
  from topic_tags
  left join tags
  on topic_tags.tag_id = tags.id
  left join topics
  on topic_tags.topic_id = topics.id
),
max_last_used as(
  select id, max(last_used) mx from topic_tag_dates
  group by id
),
tag_last_used as (
  select topic_tag_dates.id, name, topic_count, last_used from topic_tag_dates
  left join max_last_used
  on topic_tag_dates.id = max_last_used.id
  where max_last_used.mx = topic_tag_dates.last_used
)
select id,name,topic_count,last_used from tag_last_used, t
  where tag_last_used.last_used < t.cutoff_date
  and topic_count < :max_topic_count
  order by topic_count desc
5 „Gefällt mir“

Ich entschuldige mich für den Aufhänger,

Ja – das wird dringend benötigt, da einige Leute auf meinem Forum beschlossen haben, es lustig zu machen und „interessante

1 „Gefällt mir“

Wie führe ich es aus, um zu löschen, wenn Themen = 1?

Da der Standard-Cleaner nur Tags ohne Themen löscht. Wir schulen unsere Mitarbeiter und ich habe die Erstellung neuer eingeschränkt.