ISSearch
Class ISQueryProcessor
java.lang.Object
ISSearch.ISQueryProcessor
- All Implemented Interfaces:
- ISQueryProcessorInterface
- public class ISQueryProcessor
- extends Object
- implements ISQueryProcessorInterface
Interface des Query-Prozessors. Der Query Processor soll einfache Suchanfragen bearbeiten und die
Rangliste der besten Treffer - sortiert nach Relevanz - zurückgeben.
Method Summary |
URL[] |
executeQuery(String anfrage)
Diese Methode soll die Anfrage analysieren und die Top-10 der Trefferliste - sortiert nach Relevanz - zurückgeben.
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ISQueryProcessor
public ISQueryProcessor()
executeQuery
public URL[] executeQuery(String anfrage)
- Diese Methode soll die Anfrage analysieren und die Top-10 der Trefferliste - sortiert nach Relevanz - zurückgeben.
Einzelne Schritte bei der Verarbeitung der Anfrage sind:
- die Anfrage analysieren (z.B. Sonderzeichen entfernen, String.toLowerCase() anwenden, etc.) und einzelne Suchbegriffe extrahieren;
- Stoppwörter aus der Query entfernen;
- die restlichen Keywords in Wortstämme mit Hilfe des Stemmers umwandeln;
- Datenbankverbindung herstellen
- Die Anfrage auf eine SQL-Query abbilden und diese auf der Datenbank ausführen;
- Datenbankverbindung schliessen
- Top-10 URLs der Trefferliste (ggf. weniger) als Ergebnis zurueckgeben.
- Specified by:
executeQuery
in interface ISQueryProcessorInterface
- Parameters:
anfrage
- Die Query, die der Prozessor verarbeiten soll. Sie besteht aus positiven und auszuschliessenden Suchbegriffen, getrennt
durch Leerzeichen (d.h ein Treffer soll passende Features zu
allen positiven Wörtern enthalten und darf keine Negativ-Features enthalten). Man kann davon ausgehen,
dass jede Query mindestens einen 'positiven' Suchbegriff enthalten soll.
Format der Suchanfrage:
[-]key_1 [-]key_2 ... [-]key_n
mit:
key - Treffer soll den Wortstamm des Suchbegriffs enthalten.
-key - Treffer darf den Wortstamm des Suchbegriffs nicht enthalten.
- Returns:
- Die Top-10 der Trefferliste (URLs der gefundenen Dokumente), sortiert absteigend nach Relevanz (d.h. result[0]
hat den besten Score, result[1] den zweitbesten, usw.).
Als Relevanzmaß verwenden wir den
Skalarprodukt zwischen dem Query-Vektor und dem Featurevektor des Dokuments. Die Query wird in unserem
Modell durch den Vektor ihrer Positivterme (jeweils mit Gewicht 1.0) dargestellt, für die Gewichtung der
Features in den Dokumenten soll
tf*idf
Maß benutzt werden. Die Negativterme der Query werden bei der
Berechnung der Relevanz nicht berücksichtigt. Wurden keine Treffer gefunden, gibt die Funktion null
zurueck.
Sind bei der Verarbeitung der Anfrage Fehler aufgetreten, soll ebenfalls null
zurueckgegeben werden.