Wildcard-Tags in Suchen – Themen ohne bestimmte Tags finden?

Ich habe folgende Situation:

Ich habe eine Kategorie mit vielen Themen (über 900), die alle denselben Tag haben, sagen wir answered, den wir verwenden, um Beiträge zu verfolgen, auf die bereits geantwortet wurde.

Viele enthalten auch weitere Tags: deployment, cli, api und so weiter, um das „Thema" der Frage zu kennzeichnen.

Wie finde ich alle Themen in meiner Kategorie, die nur den Tag answered haben, aber keine der anderen?

Ich habe bereits folgende Syntax ausprobiert: Zum Beispiel tags:answered -tags:redirects gibt bei der Suche zwar alle Elemente mit dem Tag answered zurück, aber nicht die mit dem Tag redirects.

Um dies auf meine Situation anzuwenden, müsste ich jedoch alle Tags, die ich ausschließen möchte, einzeln auflisten – und ich habe sehr viele.

Gibt es eine Möglichkeit, Platzhalter bei der Tag-Suche zu verwenden? Etwa so: tags:answered -tags: *?

Falls nicht, gibt es eine andere Möglichkeit, eine Liste von Elementen zu erhalten, die nur den Tag answered haben und keine anderen?

Vielen Dank für eure Gedanken dazu.

This is the only way I can see of excluding tags from a search.

It is possible to search for tag groups by using the category modifier with the tag group’s slug. For example, if you had a tag group called ‘topic status’, you can search for its tags with #topic-status, but tags can’t be excluded in this way, so -#topic-status doesn’t work.

1 „Gefällt mir“

Thanks @simon - I think I’ll try adding all the tags I don’t want to search for to a tag group as suggested, and try that :muscle:

Sorry, I wasn’t as clear as I could have been. If it was possible to exclude a tag group from search, this approach would work, but I can’t see any way to exclude a tag group from search results.

2 „Gefällt mir“

oh, i misunderstood. So its not possible - at all?

You could get a list of topics that only have a single given tag with a Data Explorer query. Something like this might work for you:

--[params]
-- string :tag_name

with tagged_topics AS (
SELECT 
topic_id
FROM topic_tags
JOIN tags
ON tags.id = topic_tags.tag_id
WHERE tags.name = :tag_name
),
counts AS (
SELECT
COUNT(id) AS tag_count,
tagged_topics.topic_id
FROM topic_tags
JOIN tagged_topics
ON tagged_topics.topic_id = topic_tags.topic_id
GROUP BY tagged_topics.topic_id
)

SELECT
c.topic_id
FROM counts c
JOIN topics t
ON t.id = c.topic_id
WHERE t.deleted_at IS NULL
AND t.archetype = 'regular'
AND c.tag_count = 1
1 „Gefällt mir“