Wie erzwingt man exakte Übereinstimmungen bei der Suche?

Ich habe bemerkt, dass ich bei einigen Suchanfragen keine Ergebnisse erhalte:

Wenn ich die Suche jedoch einschränke, zum Beispiel auf ein bestimmtes Thema, erhalte ich das gesuchte Ergebnis:

Anfangs dachte ich, es könnte mit dem diakritischen Zeichen zusammenhängen, aber ich habe mehrere Tests durchgeführt, und dasselbe passiert auch mit Zeichen ohne Akzente.

Meine zweite Vermutung war, dass es an Stoppwörtern liegen könnte, aber ich habe die Datei app.yml so geändert, dass das Stoppwort-Verzeichnis für Spanisch gekürzt wird:

ls -l /usr/share/postgresql/13/tsearch_data/spanish.stop
-rw-r--r-- 1 root root 0 May 12 06:37 /usr/share/postgresql/13/tsearch_data/spanish.stop
                       ☝️

Gibt es Einstellungen, die ich anpassen kann, um sicherzustellen, dass exakte Übereinstimmungen immer gefunden werden?

Hallo @Nacho_Caballero,

kannst du mir einen Beispielsatz und einen Suchbegriff nennen, mit denen sich das Problem nachstellen lässt? Ich sehe es zwar im Bild, aber nur den Auszug.

Danke, Alan.

Hier sind die Inhalte dieses spezifischen Beitrags:

In der Tat wird es nach „pienso que

@Nacho_Caballero, hey, kannst du mir bitte mitteilen, welchen Suchalgorithmus Discourse derzeit verwendet? Das würde mir helfen, das Problem zu untersuchen.

Danke, Yashi.

Ich gehe davon aus, dass Discourse den Standard-Algorithmus für Volltextsuche in Postgres verwendet. Ich denke, der einzige Weg, exakte Übereinstimmungen bei der Verwendung von Anführungszeichen bereitzustellen (ohne Stemming und ohne das Ignorieren von Stoppwörtern), besteht darin, das [„simple

Vielen Dank, @Nacho_Caballero.

Ich werde mir den Fulltext-Algorithmus von Postgres ansehen.

Ist es möglich, nach exakten Treffern zu suchen?

Beispiel:

Derzeit liefert die Suche nach „flow" leider „flower" als höchstrelevantes Ergebnis.

Versuchen Sie es mit einer Suche in Anführungszeichen, z. B. suchen Sie nach „flow" und nicht nach flow.