ISSearch
Class ISQueryProcessor

java.lang.Object
  extended byISSearch.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.


Constructor Summary
ISQueryProcessor()
           
 
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
 

Constructor Detail

ISQueryProcessor

public ISQueryProcessor()
Method Detail

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:

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.