„Zu bestehendem Thema verschieben“ Suche schlägt still fehl, während die Websuche noch funktioniert

Hallo,

Ich habe ein Problem mit dem Modal „In bestehendes Thema verschieben“ (dies hat auf meiner Seite zuvor funktioniert, es scheint sich also um eine Regression zu handeln):

  • Die Eingabe in Thema suchen verfeinert die Ergebnisse nicht
  • Netzwerkanfragen geben 200 mit den korrekten Parametern zurück
  • Keine JS-Fehler in der Browserkonsole
  • Die seitenweite /search funktioniert wie erwartet
  • Das Problem besteht über alle Neuerstellungen hinweg fort

Beispielanfrage:
/search/query?term=Eve Park&type_filter=topic&search_for_id=true&restrict_to_archetype=regular

Die Auswahlliste scheint eine statische Menge von Themen zu bleiben und ändert sich nicht, wenn sich der term ändert.


Nach der clientseitigen Fehlerbehebung vermutete ich zunächst, dass dies daran liegen könnte, dass pg_trgm in Postgres nicht aktiviert ist, wollte dies aber bestätigen, bevor ich fortfahre.

Ich habe die folgenden Befehle ausgeführt:

./launcher enter app
rails c
ActiveRecord::Base.connection.execute(
  "SELECT extname FROM pg_extension WHERE extname = 'pg_trgm';"
).to_a

Diese Diagnose wäre gültig, wenn der Befehl zurückgegeben hätte:

[]

Stattdessen gab er jedoch zurück:

[{"extname"=>"pg_trgm"}]

pg_trgm ist also aktiviert und scheint nicht die eigentliche Ursache zu sein.


Ich beabsichtige daher, den folgenden Befehl auszuführen:

./launcher enter app
rake search:reindex

Dies könnte relevant sein, da eine bestimmte Kategorie meines Forums eine sehr große Anzahl von Themen aufweist.


Was verwirrend ist, ist Folgendes:

  • Discourse funktioniert ansonsten weiterhin normal
  • Die vollständige /search funktioniert wie erwartet
  • Die Autovervollständigung beim Verschieben von Themen verschlechtert sich stillschweigend, anstatt eine Warnung auszugeben

Im Rahmen der Fehlerbehebung habe ich auch die Einstellung search prefer recent posts aktiviert und den Browser neu geladen. Dies hatte keinen Einfluss auf das Verhalten – die Suche zum „Verschieben in bestehendes Thema“ verfeinert die Ergebnisse immer noch nicht, während ich tippe.

Da diese Einstellung nur die vollständige /search-Rangfolge beeinflusst und nicht den Endpunkt für die Themenauswahl, steht dies im Einklang damit, dass das Problem spezifisch für /search/query und nicht für die allgemeine Suchleistung ist.


Bevor ich rake search:reindex ausführe, wollte ich die Begründung auf Plausibilität prüfen:

Der Themenverschiebe-Auswähler verwendet /search/query mit search_for_id=true, was stärker auf Index-Suchen angewiesen ist als der vollständige /search-Endpunkt. Ein teilweise veralteter oder inkonsistenter Suchindex könnte daher den Auswähler beeinflussen, während die vollständige Suche weiterhin zu funktionieren scheint.

Angesichts dessen, dass:

  • der Endpunkt aufgerufen wird,
  • Antworten 200 zurückgeben,
  • pg_trgm aktiviert ist,
  • und das Umschalten von search prefer recent posts keinen Effekt hat,

scheint ein vollständiges rake search:reindex der nächste logische Schritt zu sein, um eine Index-Inkonsistenz auszuschließen. Getrennt davon macht das Fehlen jeglicher Warnung oder Rückmeldung dies aus Sicht der Admin-Benutzererfahrung besonders verwirrend.

1 „Gefällt mir“

Diese Suche war meiner Erfahrung nach noch nie zuverlässig. Zum Beispiel gibt es auch diesen Bericht: Topic can't be found when searching for a topic (verbatim) when moving a post.
Normalerweise gebe ich die Beitrags-ID ein und verwende die Suche der Website, um diesen zu finden.

1 „Gefällt mir“

Danke – das sind hilfreiche Kontextinformationen, und der verlinkte Bericht sieht meinem Fall sehr ähnlich.

Was in meinem Fall seltsam ist, ist, dass es sich tatsächlich „nicht reaktionsschnell“ verhielt, als ich den ursprünglichen Beitrag (OP) verfasst habe: /search/query wurde mit term=Eve Park usw. aufgerufen (200 Antworten), aber die Auswahlliste blieb statisch und verfeinerte sich überhaupt nicht.

Seitdem kann ich das beabsichtigte „reaktionsschnelle Such“-Verhalten (wie in meiner Safe-Mode-Aufnahme gezeigt) nebeneinander mit einem anderen Browserfenster reproduzieren.

Ich habe auf dem Server nichts anderes geändert als das, was ich im OP beschrieben habe. Daher vermute ich derzeit, dass ich ursprünglich auf eines der folgenden Probleme gestoßen bin:

  • ein clientseitiges Zustandsproblem (zwischengespeicherte Assets / Unterschied bei Hard-Refresh / Interaktion mit Theme-Komponenten) oder
  • einen Abfrage-Edge-Case, bei dem bestimmte Begriffe nicht wie erwartet zurückgegeben werden (exakte Übereinstimmung / Satzzeichen / Stoppwörter / Reihenfolge), ähnlich dem von Ihnen verlinkten Bericht „Verbindungssuche kann Thema nicht finden“.

Als Nächstes werde ich die tatsächliche JSON-Antwort von /search/query zwischen dem „nicht reaktionsschnellen“ Fall und dem „reaktionsschnellen“ Fall (gleicher Begriff) vergleichen und werde Safe Mode erneut mit/ohne Themes ausführen, um zu sehen, ob dies korreliert.

Wenn jemand die genauen Abgleichsregeln kennt, die vom Auswahldialog zum Verschieben von Themen verwendet werden (im Gegensatz zur vollständigen /search), wäre das sehr hilfreich – ich versuche herauszufinden, ob dies eine bekannte Einschränkung/ein Edge-Case oder eine Regression ist.