Suche mit Satzzeichen führt zu unzuverlässigen Ergebnissen

Zum Beispiel die Suche nach it, it:, „it, it:“, „it, it:“,, "it, it:", oder it, it:“. Dabei wird dieser Beitrag nicht angezeigt, obwohl er „it, it:“ enthält.[1]

Außerdem werden die Anführungszeichen „“ beim Drücken der Suchschaltfläche in "" umgewandelt. Diese Erfahrung gefällt mir nicht, ich weiß nicht, ob es sich um einen Fehler handelt.

Plattform: Edge auf Android, try.discourse.org, in Safe-Modus reproduzierbar


  1. Falls er automatisch gelöscht wird: Der Inhalt des Testbeitrags lautet: It, „it, it:“, it, oandnxkwbs. ↩︎

Ich denke, it ist ein Stoppwort, das bei der Suche ausgeschlossen wird. Hast du versucht, es mit einem Wort zu reproduzieren, das nicht auf dieser Liste steht, um zu überprüfen, ob es sich um eine Frage der Zeichensetzung handelt?
Are specific terms ignored from searches? - #5 by codinghorror

Ich kann es in anderer Form nicht mehr nachvollziehen. Vielleicht nutzt das Forum, auf dem ich das Problem gesehen habe, eine veraltete Version von Discourse.

Eigentlich glaube ich, dass ich es erneut reproduzieren kann. Versuche, diesen Beitrag zu finden, indem du nach we don't suchst.

Und mit der Suche nach „just-use-interface{}/object; we don’t need generics“ oder "just-use- interface{} / object ; we don't need generics" wird er nicht gefunden.

Aber mit der Suche nach just-use- interface{} / object ; we don't need generics wird er gefunden.

Ja, das ist korrekt … man kann überhaupt nicht nach it suchen … wenn man es hier versucht, erhält man keine Ergebnisse. Wörter, die extrem häufig vorkommen (ich, der, ein, Pronomen usw.), werden von der Indizierung ausgeschlossen, weil sie zu oft vorkommen, um eine sinnvolle Unterscheidung zu ermöglichen.

dasselbe hier, we und don't (technisch don und t) werden nicht indiziert

diese Situation ist ein wenig anders … für:

"just-use- interface{} / object ; we don't need generics"

das wird nie funktionieren, die Anführungszeichen verlangen eine exakte Übereinstimmung und die Leerzeichen machen es zu keiner exakten Übereinstimmung

im Falle der Suche nach:

"just-use-interface{}/object; we don't need generics"

enthält der ursprüngliche Beitragstext ein dekoratives Anführungszeichen (don’t), aber die Suche entfernt diese, sodass man nie eine exakte Übereinstimmung für eines davon zurückgeben kann … das bedeutet, dass Beiträge und Suche nicht exakt symmetrisch sind, was vielleicht etwas ist, das verbessert werden könnte

das ist so, weil ohne die Anführungszeichen drumherum keine exakte Übereinstimmung gesucht wird, sodass es die Begriffe “interface”, “object”, “need”, “generics” aufgreift und dieser Beitrag die beste Übereinstimmung für diese Begriffe ist

Ich hatte große Schwierigkeiten, die Themen zu finden, nach denen ich gesucht habe, selbst mit sehr einfachen Suchbegriffen. Es handelt sich um ein bereits bekanntes Problem, und vor einigen Jahren gab es auch einen Versuch, eine Typesense-Integration einzurichten.

Ich frage mich, ob es konkrete Pläne gibt, die Suchfunktion von Discourse zu verbessern? Sie gehört zu den am häufigsten genutzten Funktionen, und ich denke, sie braucht eine Überarbeitung und etwas mehr Aufmerksamkeit.

Vielleicht eine Option für „Einfache Textsuche“ hinzufügen? Damit werden Fallstricke wie ""-Anführungszeichen deaktiviert.

Und ich bin neugierig: Gibt es einen technischen Grund, warum „we“ und „don’t“ von der Indexierung für die Suche ausgeschlossen werden? Liegt es daran, dass sie zu häufig vorkommen?

Ja, genau.

Stopwörter sind Wörter, die sehr häufig vorkommen, in fast jedem Dokument auftauchen und keinen diskriminierenden Wert besitzen. Daher können sie im Kontext der Volltextsuche ignoriert werden. Zum Beispiel enthalten englische Texte Wörter wie a und the, weshalb es nutzlos wäre, sie in einem Index zu speichern.

PostgreSQL: Documentation: 18: 12.6. Dictionaries