Eine Reihe unserer Community-Nutzer hat darum gebeten, ein benutzerdefiniertes Feld für ihre Fediverse-Benutzernamen hinzuzufügen. Das ist einfach hinzuzufügen.
Ich habe experimentiert, um dieses Feld durchsuchbar zu machen. Ich habe einen Beitrag gefunden, der beschreibt, wie das funktioniert, aber meine aktuelle Version von Discourse (aktuell) bietet keine solche Oberfläche. Ich sehe Ergebnisse im Schnellsuchefeld (mit dem Wert beschriftet, das ist schön) und die erweiterte Suche zeigt passende Benutzer an.
Aber… es werden nicht alle Treffer gefunden. Wir haben mindestens 3 weitere Benutzer (einschließlich mir), die “mastodon” in diesem benutzerdefinierten Feld eingegeben haben. Gibt es eine Art Verzögerung bei der Indizierung?
Außerdem habe ich wirklich nach einer Möglichkeit gesucht, eine Suche oder eine Abfrage auszuführen, um eine Liste aller Benutzer zu generieren, die einen Wert in diesem Feld eingegeben haben (z. B. zeige mir alle Benutzer mit einem Fediverse-Benutzernamen). Ist das eine Aufgabe für eine benutzerdefinierte Abfrage? Wie würde ich das machen?
Dies könnte mit dem Data Explorer Plugin mit einer SQL-Abfrage wie dieser durchgeführt werden:
SELECT ucf.user_id,
ucf.value,
ucf.updated_at AS reltime$time
FROM user_custom_fields ucf
WHERE ucf.name = 'user_field_1'
AND ucf.value IS NOT NULL
ORDER BY ucf.updated_at DESC
Dabei wäre 'user_field_1' ein benutzerdefiniertes Benutzerfeld auf Ihrer Website, das Sie anzeigen möchten. Beachten Sie, dass Discourse user_field_1, user_field_2, user_field_3 usw. als Namen für die benutzerdefinierten Benutzerfelder in der Tabelle user_custom_fields verwendet und nicht den Textnamen der Felder auf der Seite „Anpassen –> Benutzerfelder“.
Wenn Sie möchten, könnten Sie eine Liste aller Namen der benutzerdefinierten Benutzerfelder auf Ihrer Website und ihrer entsprechenden user_field-Nummer mit Folgendem erhalten:
SELECT uf.id, uf.name
FROM user_fields uf
Dabei wäre die ID des Benutzerfeldes der Name user_field_X in der Tabelle user_custom_fields.
Vor diesem Hintergrund bin ich mir nicht sicher, warum Sie Ihre Benutzerfelder nicht im Suchfenster durchsuchen könnten, solange das Benutzerfeld durchsuchbar ist.
Sie könnten versuchen, das Menü für erweiterte Suche zu verwenden und „Benutzer“ als Suchort auszuwählen, um zu sehen, ob Sie die gleichen Ergebnisse erhalten:
Danke Alex, das Data Explorer Plugin hat fantastisch funktioniert (mein erstes Mal damit).
Die Suche unter Benutzer funktioniert überhaupt nicht. Die Werte hier sind Fediverse-Benutzernamen, und mein Eintrag ist
@cogdog@mastodon.social
aber ich erhalte keine Ergebnisse, wenn ich Benutzer nach der Zeichenfolge ‘mastodon’ durchsuche. Funktioniert es nicht mit Teilzeichenfolgenübereinstimmungen? Das ist nicht besonders kritisch, und ich werde das durchsuchbare Flag für dieses Feld wahrscheinlich deaktivieren. Ich hoffte, eine benutzerfreundliche Möglichkeit zu bieten, alle Benutzer zu sehen, die einen Wert für dieses Feld eingegeben haben – gibt es eine Suchoption für die allgemeine Suche, die Einträge finden kann, die nicht leer sind?