Das ist weit außerhalb des Rahmens der ursprünglichen Diskussion, aber ich bin mir nicht sicher, ob ich nur überrascht oder völlig empört sein soll:
(Hervorhebung von mir)
Ich werde die Datenbankwahl nicht in Frage stellen, da ich hier keine Erfahrung habe, aber diese Aussage impliziert, dass PostgreSQL intern nicht zwischen diesen Fällen unterscheidet. Ist diese Art von Einschränkung bei Datenbank-Textsuchmaschinen üblich? Wenn ja, würde das weitgehend erklären, warum die meisten Suchfunktionen auf Websites völlig unbrauchbar sind…
Lassen Sie mich diese Aussage präzisieren. Bei exakten Treffern ist eine Rangfolge der Ergebnisse nicht erforderlich, da entweder ein Treffer vorliegt oder nicht. Bei Treffern, die den Suchbegriff enthalten, wie entscheiden wir dann, welche Ergebnisse höher rangieren sollen?
Dies ist mein Suchbegriff
Suchbegriff ist interessant
Suchbegriff ist hier interessanter, da der Titel länger ist
Alle oben genannten Titel enthalten den Suchbegriff, also stellt sich die Frage: Wie ranken wir die Ergebnisse? Derzeit verlassen wir uns auf die Ranking-Funktion von Postgres, um dies für uns zu entscheiden.
Ranking-Versuche messen, wie relevant Dokumente für eine bestimmte Abfrage sind, damit bei vielen Treffern die relevantesten zuerst angezeigt werden können. PostgreSQL bietet zwei vordefinierte Ranking-Funktionen, die lexikalische, proximale und strukturelle Informationen berücksichtigen; das heißt, sie berücksichtigen, wie oft die Abfragebegriffe im Dokument vorkommen, wie nah sie im Dokument beieinander liegen und wie wichtig der Teil des Dokuments ist, in dem sie vorkommen. Allerdings ist das Konzept der Relevanz vage und sehr anwendungsspezifisch. Unterschiedliche Anwendungen könnten zusätzliche Informationen für das Ranking erfordern, z. B. die Änderungszeit des Dokuments. Die integrierten Ranking-Funktionen sind nur Beispiele. Sie können eigene Ranking-Funktionen schreiben und/oder deren Ergebnisse mit zusätzlichen Faktoren kombinieren, um Ihren spezifischen Anforderungen gerecht zu werden.
Postgres berücksichtigt eine Reihe von Faktoren, aber letztendlich ist das Ranking immer noch etwas vage und hängt stark von Site zu Site davon ab, wie der Inhalt des Forums strukturiert ist. Unser Ziel bei Discourse ist es, eine gute Standardlösung bereitzustellen, die für die meisten Foren funktioniert.
Ahh… Also, wahrscheinlich ein Missverständnis meinerseits. Ich dachte, du meintest, die Datenbank könne nicht zwischen einer exakten Übereinstimmung und einer Übereinstimmung mit dem „enthält“-Operator unterscheiden.
Im Kontext der Priorisierung von Übereinstimmungen in Themetiteln, wie wir ursprünglich diskutiert haben:
Ich würde alle drei deiner Beispiele aus Gründen meiner Absicht als „exakte Übereinstimmungen