Autor Thema: Suche (web) über mehrere DB's  (Gelesen 1917 mal)

Offline macchina

  • Junior Mitglied
  • **
  • Beiträge: 62
  • Ich liebe dieses Forum!
Suche (web) über mehrere DB's
« am: 30.08.05 - 13:54:34 »
Hallo!

Ich hätte da gerne mal eine Frage  :-:
Ausgangssituation:
Ich habe 5 DB's mit identischem Design. Die Websuche (in der jeweiligen DB) habe ich derzeit mit einer Suchmaske, Suchansicht u. dem $$Return-Feld gelöst. Funktioniert bestens.
Nun würde ich gerne eine Suchfunktion basteln, die eine Suche über alle 5 DB's durchführt (DB's wären in Profiledocument hinterlegt).

Meine Idee:
Anstatt des Suchen-Buttons in meiner Suchmaske (der ein submit auslöst), einen Agent (Script) aufzurufen, der in allen 5 Datenbanken einen FTSearch macht u. jedes Dokument in eine Collection wirft u. anschließend baue ich mir dann aus dieser Collection meine Ergebnisseite zusammen.

1. Hätte wer einen eleganteren Vorschlag?

2. Bei meiner Variante kämpfe ich momentan damit, den TargetFrame für die Ergebnisseite zu setzen. Ich kann zwar mit Print den HTML-Code ausgeben, nur leider nicht im gewünschten Frame. Any Ideas?

Danke
Ernstl

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Suche (web) über mehrere DB's
« Antwort #1 am: 30.08.05 - 14:24:06 »
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
« Letzte Änderung: 30.08.05 - 14:32:54 von diali »
Gruß
Dirk

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Suche (web) über mehrere DB's
« Antwort #2 am: 30.08.05 - 16:30:54 »
Du musst einfach nur die Domain- Search einrichten, und dann die Suchmasken in der catalog.nsf an Deine Bedürfnisse anpassen.

Genaueres zur Domain Search findest Du in der Admin- Hilfe.

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Suche (web) über mehrere DB's
« Antwort #3 am: 31.08.05 - 07:09:21 »
die Domain-Search ist natürlich die schnellere und einfachere Methode.

Nachteile sind aber:
- nicht so flexibel in der Ergebnisdarstellung
- die Rechte auf Dokumente müssen "sauber" sein
Gruß
Dirk

Offline macchina

  • Junior Mitglied
  • **
  • Beiträge: 62
  • Ich liebe dieses Forum!
Re: Suche (web) über mehrere DB's
« Antwort #4 am: 31.08.05 - 12:12:53 »
Hi,

Hab das jetzt so gelöst:

Beim WebQuerySave der Suchmaske wird ein Script-Agent aufgerufen, dieser führt die Suche durch (zu durchsuchende DB's sind im Profile hinterlegt) und gibt das Ergebnis (formatiert u. mit den gewünschten Infos) als HTML via Print in den darunterliegenden Frame aus.

Eingebaut habe ich, daß der Anwender die zu durchsuchenden DB's via Checkbox selbst auswählen kann u. daß das Suchergebnis der aktuellen DB immer oben steht.

LG
Ernstl


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz