-
Notifications
You must be signed in to change notification settings - Fork 0
Anforderungen Frontend
- kleineres Textfeld zur Suche (Wortvervollständiung mit bekannten Stichworten in nahezu Echtzeit)
- größeres Textfeld zur Suche in den Übersetzungen/Wortbeschreibungen (erweiterbar zu einem dynamischen Formular für erweiterte Suche, siehe Abschnitt Volltextsuche)
- unterhalb der Suchfelder: sich dynamisch an die Angaben in den Suchfeldern anpassende Liste von Suchresultaten und Vorschlägen (hell-dunkel-alternierend pro Zeile, Spalten: Stichwort, Icon für die Wortart,Beginn der Übersetzung (abschneiden bei ca. 160 Zeichen)
- Navigationmöglichkeiten zur den drei vorherigen und den drei folgenden Einträgen, wobei deren Stichwort bereits in dem Links/Buttons angezeigt wird
- Schalter zur Expansion auftretender Wörterbuchabkürzungen
- tooltips zur Erläuterung der Abkürzungen, falls diese nicht expandiert angezeigt werden
Die Inhalte der Wörterbucheinträge nach zwei Merkmalen zu klassifizieren: ihre Sprache (deutsch, latein, griechisch) und ihr inhaltlicher Begzug (Bedeutung, Verwendungsbeispiel, morph. und gramm. Informationen, Bemerkung, evntl. weitere).
Die Idee ist, den Fließtext der Einträge mit ein paar Heuristiken möglichst genau in Teile zu spalten, die einem (Sprache,Inhalt)-Tupel zuzuordnen sind (chunking) und diesen dann auch entsprechend der Klassifizierung in entsprechende separate Volltext-Indizes einzuspeisen.
Da die API von von Lucene allerdings keine Möglichkeit vorsieht, kombinierte Anfragen an verschiedene Indizes gleichzeitig engegenzunehmen, müssen wir unser Formular für die Volltextsuche so anpassen, dass der Nutzer separat Anfragen für Indizes stellen kann, die sich nur auf eine bestimmte Sprache, einen bestimmten inhaltichen Bezug oder beides kombiniert beziehen.
Beim ersten Abrufen der Suchseite wird ein einfaches Formular angeboten, in dem man abgesehen von dem eigentlichen Anfragestring noch bestimmt, ob sich der Anfragestring nur auf tokens einer bestimmten Sprache in den Einträgen oder auf tokens aller Sprachen beziehen soll:
Damit für fortgeschrittene Nutzer auch komplexere Anfragen möglich werden, kann man ein ein erweitertes Anfrageformular wechseln: Hier besteht die Anfrage aus einer variablen Menge von Suchfeldern. Für jedes Suchfeld kann ein Anfragestring eingegeben werden, der sich auf ein bestimmtes (Sprache,Inhalt)-Tupel bezieht, so dass wir dann genau wissen gegen welche(n) der Volltext-Indizes wir den Anfragestring auszuwerten haben. Die add/remove-buttons erlauben dem Nutzer das Hinzufügen weiterer Schaltflächen für zusätzliche Anfragefelder bzw. das Entfernen eines bereits bestehenden Anfragefelds.
Für das Abbilden der Parameter der einfachen und erweiterten Suchfeldformulare auf Backend-Anfragen wurden folgende Interfaces, Enumerations und Klassen angelegt: de.fusionfactory.index_vivus.services.Language
, de.fusionfactory.index_vivus.services.ContentType
, de.fusionfactory.index_vivus.services.QueryDescription
,
de.fusionfactory.index_vivus.services.IFullTextSearchService