T.Jansen Geschrieben 16. Oktober 2009 Geschrieben 16. Oktober 2009 (bearbeitet) Hallo, Da sich meine asp kentnisse gen 0 richten das Projekt doch ziemlich wichtig ist frage ich nun hier. Erstmal der Link zum Tut: Index-Server: Volltextsuche auf der Website (Gastbeitrag tecCHANNEL) Was ich bisher getan habe: 1. Index Server läuft 2. Zunächst brauchen Sie einen Such-String. Dazu erstellen Sie ein HTML-Formular, das ein Textfeld mit dem Namen SearchString enthält. Hier fangen die Probleme an. Ab hier bin ich dann auf hilfe angewiesen. Grün = abgearbeitet Rot = ausstehend Zunächst brauchen Sie einen Such-String. Dazu erstellen Sie ein HTML-Formular, das ein Textfeld mit dem Namen SearchString enthält. Dieses wird an das Such-Script geschickt, wo der SearchString dann mit dem folgenden Statement ausgelesen wird: SearchString = Request.Form('SearchString') Mit dem Such-String können Sie die Suche ein wenig präzisieren. Als Erstes brauchen Sie dazu aber ein Objekt, das Sie zur Kommunikation mit dem Indexdienst verwenden. Das erzeugen Sie zunächst per CreateObject(): set Q = Server.CreateObject('ixsso.Query') Danach legen Sie fest, was und wie gesucht werden soll. Am einfachsten wäre es dabei, dem Query den Such-String zuzuweisen: In diesem Fall würde der String in allen Dateien gesucht werden. Um die Suche jedoch etwas einzuschränken, können Sie das folgende Statement verwenden. Dabei werden nur HTML- und ASP-Seiten durchsucht - und von diesen auch nur der Inhalt. Gesucht wird dabei der in SearchString eingegebene Text: Q.Query = '#filename = *.|(html|,htm|,asp|,aspx|) & ${contents} ' & SearchString Als Nächstes geben Sie an, wie das Sortieren der Ergebnisse erfolgen soll. Der Indexdienst kann nach einer ganzen Reihe von Bedingungen sortieren, am einfachsten ist es aber, wenn man den Page-Rank, den der Suchdienst selbst ermittelt hat, zum Sortieren verwendet: Q.SortBy = 'rank[d]' Zum SeitenanfangZum Seitenanfang Ergebnismenge festlegen Schließlich müssen Sie spezifizieren, was alles im Suchresultat enthalten sein soll. Der Indexdienst merkt sich eine recht große Anzahl von Informationen über jede einzelne Datei. Welche das im Einzelnen sind, können Sie im Ordner 'Eigenschaften' im Bereich der Kataloge in der Computerverwaltung nachsehen. Die meisten Informationen sind selbsterklärend: So lassen sich zum Beispiel der Titel eines Dokuments, seine Größe und sein Pfad ermitteln: Q.Columns = 'DocTitle, vpath, path, filename, size, write, characterization' Nun müssen Sie noch festlegen, in welchem Katalog die Suche stattfinden soll. Dabei geben Sie den Namen des Katalogs an, den Sie zuvor in der Computerverwaltung für den Webserver angelegt haben. Q.Catalog = 'meinesite.de' Damit ist die Suche vollständig definiert. Sie können sie nun anstoßen, indem Sie vom Query-Objekt ein RecordSet erstellen lassen: set RS = Q.CreateRecordSet('nonsequential') Zum SeitenanfangZum Seitenanfang Resultat ausgeben Über dieses Recordset iterieren Sie dann. Bei jedem Schritt erhalten Sie das jeweils nächste Ergebnis aus den Suchresultaten. Je nach Konfiguration Ihres Servers ist es dabei noch notwendig, Informationen über die Pfade der gefundenen Dateien in ein Format umzuwandeln, das für das Web geeignet ist: Von Haus aus liefert der Indexdienst nur lokale Pfade zu den gefundenen Dateien. % Do While Not RS.EOF % %if VarType(RS('DocTitle')) = 1 or RS('DocTitle') = '' then% a href='%=RS('path')%'%= Server.HTMLEncode( RS('filename') )%/a %else% a href='%=htpath%'%= Server.HTMLEncode(RS('DocTitle'))%/a %end if% %if VarType(RS('characterization')) = 8 and RS('characterization') '' then% %= Server.HTMLEncode(RS('characterization'))% %end if% % RS.MoveNext Loop % Bis hier benötige ich es datailierter. Ich hoffe es findet sich jemand der sich damit mal eben auseinander setzt. Der erste Step ist getan, habe mir den passenden (zumindest denk ich es) Code auf einer Website gesucht. Entstanden ist daraus folgendes: <form name="SearchString" action="test.asp" method="get"> Suche <input type="text" name="user" /> <input type="submit" value="Submit" /> </form> nächster Schritt ist folgender. Dieses wird an das Such-Script geschickt, wo der SearchString dann mit dem folgenden Statement ausgelesen wird: SearchString = Request.Form('SearchString') Habe SearchString = Request.Form('SearchString') einfach mal direkt in die HTML Datei geschrieben, habe aber festgestellt das es anders funktionieren muss da nur der Text im Browser ausgegeben wird. Bearbeitet 16. Oktober 2009 von T.Jansen Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.