Ich habe so etwa schon umgesetzt, kann es Dir aber leider aus rechtlichen Gründen nicht überlassen.
Eine DB, in der in Dokumenten die folgenden Infos zu den einzelnen DBs, die durchsucht werden sollen, enthalten sind:
- DB-Titel ... dient als Kategorie-Anzeige
- Pfad und DB-Name ... wird für die Suche benötigt
- Servername ... wenn die DB nicht auf dem gleichen Server wie die Such-DB liegt
- Suchansicht ... damit Du einschränkungen über Ansichten machen kannst
- Suchparameter ... damit Du Einschränkungen über Felder machen kannst (UND-Verknüpfung mit dem Query)
- Ergebnisdarstellung ... HTML-Code - Wie soll das Ergebnis dagestellt werden
- verwendete Felder ... Welche Felder werden in der Ergebnisdarstellung verwendet (wichtig für Pervormance)?
Suchansicht und Suchparameter wird für "unsauber" DBs von 3. Anbietern verwendet (Z.B. Dokumente über Ansichten versteckt anstelle über Leserfelder usw.)
Die Suchmaske ist an Google angelehnt, ein Feld für
- Kategorie ... Notes-DB, in der gesucht werden soll
- mit allen Wörtern ... Wörter werden im Query mit AND verbunden
- mit einem der Wörter ... Wörter werden mit OR verbunden
- ohne die Wörter ... Wörter werden mit OR verbunden, der Ausdruckeingeklammert und mit NOT negiert
- genaue Wortgruppe ... wird in Hochkommas geschrieben
- Anzahl der Treffer ... nach x Treffern wird die Suche in der DB abgebrochen
Diese Ausdrücke werden einzeln eingeklammert und mit AND verbunden.
Im WebQuerySave wird dann ein Agent gestartet, der über die gewählten Dbs geht und
- prüft ob die Db vorhanden ist,
- prüft, ob die DB geöffnet werden kann,
- prüft ob ein FT-Index vorhanden ist,
- eine FT-Suche ausführt (verknüpft mit der Suchansicht und/oder der Suchparameter),
- die Zeitdif. vor der Suche und nach der Suche feststellt (Suchzeit - wie bei Google)
- den HTML-Code aus der Ergebnisdarstellung nimmt und die Felder in "verwendete Felder" durchgeht, die Werte der Felder ersetzt und mit Print in den Browser zurückschreibt
z.B.:
Ergebnisdarstellung:
<a href=<<Document>>><<ViewText_1>> <<Version>>-<<Revision>></a><br><font size="-1">[Stand: <<DocumentLastModified>>]</font><br><br>
verwendete Felder:
ViewText_1; Version; Revision
sieht im Web dann so aus:
Dokument 2-45[Stand: 30.02.2004 08:45:57]
Ist nur eine Grobskizzierung der Anwendung