it-swarm-eu.dev

Suchfeld-Benutzeroberfläche - "alle Wörter", "teilweise Übereinstimmung", "genaue Phrase"

Ich entwerfe eine Desktop-Anwendung (langweiliges Buchhaltungsmaterial) und habe eine Funktion "Produkt suchen".

Ich möchte ein schönes, aber einfaches "intelligentes" Suchfeld haben. Derzeit teilt das Suchfeld alle angegebenen Wörter auf und sucht alle Datensätze, die teilweise mit any übereinstimmen.

Jetzt stehe ich vor dem folgenden Dilemma: Ich möchte wirklich eine Möglichkeit bieten, anzugeben, ob der Benutzer mit den angegebenen Wörtern any oder all übereinstimmen möchte. Was wäre ein guter Ansatz?

Ein weiteres Problem ist, dass vielleicht ein Benutzer eine genaue Übereinstimmung durchführen möchte. Auch hier möchte ich, dass die App einfach zu bedienen ist.

Im Moment habe ich nur drei Optionsfelder auf das Formular geworfen, aber ich fühle mich innerlich schmutzig ... irgendwelche Meinungen?

21

Google hat dies vor langer Zeit gelöst - es hat keinen Sinn, das Rad neu zu erfinden. ;)

Ich würde vorschlagen, dass Sie die Notwendigkeit der Auswahl entfernen und drei Suchvorgänge gleichzeitig durchführen: "genaue Phrase" , "Alle Wörter abgleichen" UND "Alle übereinstimmen" . Vereinigen Sie dann diese Ergebnisse (SQL "union") in dieser Reihenfolge und präsentieren Sie sie dem Benutzer.

Nachteile:

  • mehr Last auf Ihrer Datenbank.

positiv:

  • natürlicher für den Benutzer: Wenn jemand mehrere Wörter eingibt, weiß er höchstwahrscheinlich, wonach er sucht; Sie schießen nicht im Dunkeln und versuchen, mindestens ein Wort richtig zu machen
  • entspricht der Erfahrung in Suchmaschinen
  • spart einen Klick in der Interaktion = spart Zeit.

Stellen Sie sicher, dass Sie Rauschwörter aus der Suchphrase entfernen und Fälle/Konjugationen usw. Normalisieren. Es hilft dabei, die Ergebnisse zu finden, die Ihre Benutzer benötigen, auch wenn sie die Suchwörter in der falschen Groß-/Kleinschreibung/mit dem falschen Artikel eingeben.

Stellen Sie außerdem sicher, dass die Suche nur mit der Tastatur funktioniert (d. H. Ohne den Benutzer zur Verwendung der Maus zu zwingen. <search phrase> <Enter> sollte ausreichen, um Ergebnisse zu erzielen).

26
Erion

Meine persönliche Meinung ist, dass Sie dem Benutzer eine Möglichkeit bieten sollten, die Suche zu verfeinern, weil:

  1. Sie haben es als Ihr Ziel angegeben ("Ich möchte wirklich ...") und unabhängig davon, welchen automatischen Ansatz Sie wählen, lassen Sie den Benutzer nicht wählen.
  2. Mit Google Mail (einer Anwendung, die Ihrer eigenen Anwendung ähnlicher ist als der Websuche) können Sie die Suchoptionen anzeigen und verfeinern.
  3. Selbst die reguläre Google-Suche ermöglicht es dem Nutzer, die Ergebnisse manuell zu verfeinern, d. H. Wenn die Suchzeichenfolge in Anführungszeichen steht, wird sie als Ganzes gesucht.
  4. Wenn ich als erfahrener Benutzer meine Kriterien kenne, funktioniert es wirklich gegen mich, automatische Entscheidungen für mich zu treffen und meine Ergebnisse nach einem Algorithmus zu mischen, den ich nicht kenne.

Die Art und Weise, wie ich es vorschlagen würde, ist etwas ähnlich wie das, was Chris vorgeschlagen hat.

Entnommen aus DeepDyvealt text

Sobald Sie auf "Verfeinern" klicken, können Sie entweder sofort eine Dropdown-Liste öffnen oder sogar einen kleinen Dialog verwenden, wenn Sie in Zukunft weitere Suchoptionen hinzufügen möchten.

5
Dan Barak

Wenn Platz das Hauptanliegen ist, haben Sie darüber nachgedacht, ein Dropdown-Menü zu verwenden? Obwohl dies möglicherweise keine brillante Lösung ist (da mehr Klicks erforderlich sind), würde es weniger Platz beanspruchen als eine Reihe von Optionsfeldern.

Die aktuelle Option wird mit dem Expander angezeigt, um die anderen Optionen zuzulassen.

       +-----------------+---+ +---------------------+ +----+
Search | exact phrase    | V | |                     | | Go |
       +-----------------+---+ +---------------------+ +----+
       | all words           |
       | any words           |
       | exact phrase        |
       +---------------------+

(entschuldigen Sie die schlechte ASCII-Kunst)

Eine Verfeinerung könnte darin bestehen, das Dropdown-Menü auszuführen, wenn die Maus über dem Expander schwebt, anstatt dass der Benutzer klicken muss, aber auch dies ist keine ideale Lösung.

4
ChrisF

Ich würde die Suchoptionen beenden - ich glaube nicht, dass Ihre Benutzer so denken, aber wie das UI-Mantra lautet, testen Sie es mit echten Benutzern und sehen Sie, was sie denken.

Normalerweise priorisieren Suchmaschinen wie folgt:

  1. Versuchen Sie, das Ganze zu finden (das UND)
  2. Versuchen Sie, einzelne Wörter gemeinsam zu finden
  3. Versuchen Sie, Fragmente der Wörter zu finden (Stämme - Sie geben "Treten" ein, es entspricht auch "Treten").
2
Julian H

Stimmen Sie Erion auf jeden Fall zu - der Benutzer muss sich nicht für so etwas entscheiden - lassen Sie Ihre Suchmaschine (was auch immer es ist) dies für Sie tun.

Unabhängig davon, welche Technologie Ihr Back-End für die Suche verwendet, gibt es Möglichkeiten, die Ergebnisse nach den von Ihnen gewünschten Kriterien zu priorisieren (d. H. Genau wie bei Google). Einige sind für diese Art von Dingen möglicherweise schwieriger einzurichten als andere, aber selbst eine einfache SQL Server-Volltextindizierung kann diese Ebene der Organisation der Suchergebnisse bieten.

Treffen Sie einfach die Entscheidung für die beste Benutzererfahrung und lassen Sie sie von Ihren Ingenieuren (oder Entwicklern, falls erforderlich) zum Laufen bringen. Dafür sind sie da. Da ich auch Ingenieur bin, kann ich das sagen :)

1
Charles Boyung

Wenn Sie neugierig sind, arbeiten Volltextsuchmaschinen am häufigsten mit TD-IDF-Scoring. Dies steht für Term Frequency-Inverse Document Frequency . Das Wesentliche ist, dass ein Dokument relevanter ist, wenn der Suchbegriff sehr häufig darin vorkommt. Dies wird durch die Anzahl der Dokumente, die das Wort insgesamt enthält, abgezinst.

0
CambridgeMike