Autor Thema: Volltexsuche - maximale Anzahl Dokumente  (Gelesen 4780 mal)

Jürgen Schomann

  • Gast
Volltexsuche - maximale Anzahl Dokumente
« am: 11.10.16 - 21:01:46 »
Ich mache in LotusScript in fremden Datenbanken mit Volltextindex auf verschiedenen Servern eine Volltextsuche über NotesDatabase.FTSearch mit dem Parameter für die maximale Anzahl Dokumente, die zurückgegeben werden = 0.
Standardmäßig werden bis zu 5000 Dokumente geliefert außer wenn in der Notes.ini-Datei eine Variable FT_MAX_SEARCH_RESULTS gesetzt ist, dann gilt das dort angegeben Maximum.
Leider kann ich dabei nicht feststellen ob dieses Maximum erreicht wurde, die Suche also ggf. nicht alle Dokumente zurückgegeben hat.
In der lokalen Notes.ini kann ich diese Variable mit NotesSession.GetEnvironmentValue ja auslesen und wenn die Treffer gleich diesem Wert sind, eine Meldung ausgeben, die Suche zu verfeinern oder die Variable zu erhöhen.

Was mache ich aber bei der Suche in Datenbanken auf anderen Servern. Die Notes.ini-Variable kann ich hier ja nicht prüfen?

Gibt es eine andere Möglichkeit ob das Maximum erreicht wurde?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #1 am: 12.10.16 - 08:52:48 »
Doch, mit NotesSession.SendConsoleCommand kannst Du den entsprechenden NOTES.INI abfragen. Die zurückgelieferte NOTES.INI-Zeile muss Du Dir dann entsprechend auswerten.

Bernhard

Jürgen Schomann

  • Gast
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #2 am: 12.10.16 - 17:59:02 »
Vielen Dank für den Hinweis.
Ich habe aber das Problem, dass die Datenbank, von wo die Suche gestartet wird, lokal ist.
Lt. Notes-Hilfe muss ich dann aber in allen betreffenden Servern als 'Administratoren mit voller Remotekonsolen-Berechtigung' eingetragen sein.
Ich habe mal getestet und es reicht zum Holen der Information mit 'Show Configuration <Variable>' als 'Leseberechtigte Administratoren' eingetragen zu sein.
Aber ich bezweifele, dass der Endanwender diese Berechtigung erhält.

Der andere Weg mit NotesAgent.RunOnServer(<NoteID>) über einen Agenten, der mit der Server-ID unterzeichnet wurde und unter 'Unbeschränkte Methoden und Operationen ausführen' eingetragen ist, wäre ja für o. g. lokale Datenbank nicht möglich?

Oder gibt es noch eine andere Idee.?

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #3 am: 13.10.16 - 08:22:15 »
Hallo,

Was ist denn nun korrekt?

In deinem ersten Post schreibts du
Zitat
Was mache ich aber bei der Suche in Datenbanken auf anderen Servern. Die Notes.ini-Variable kann ich hier ja nicht prüfen?

Jetzt schreibts du
Zitat
Ich habe aber das Problem, dass die Datenbank, von wo die Suche gestartet wird, lokal ist.

Wenn die Datenbank nun lokal liegt, dann kannst du doch mit
Zitat
NotesSession.GetEnvironmentValue
arbeiten.

Wo liegt denn nun die Datenbank genau?


Andreas


Jürgen Schomann

  • Gast
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #4 am: 13.10.16 - 22:24:22 »
War wohl etwas unscharf formuliert, hier noch einmal.
Die Datenbank mit der Anwendung ist lokal. In dieser hole ich mir mit NotesSession.GetDatabase die Datenbanken von anderen Servern und führe dann mit NotesDatabase.FTSearch die jeweilige Suche aus.
Mit NotesSession.GetEnvironmentValue kann ich nur die lokale Notes.INI am Client auslesen. Das reicht auch wenn ich die Suche in einer lokalen Datenbank ausführe.
Wenn ich aber eine Suche in einer Datenbank auf dem Server ausführe, brauche ich die Notes.INI-Variable aus der Notes.INI-Datei des Servers.
Diese kann ich aber nur wie bereits geschrieben, nur unter bestimmten Bedingungen erreichen, die ich als normaler Anwender nicht habe.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #5 am: 14.10.16 - 06:53:22 »
Zwei Ideen:

1. Wenn die Server unter eigener Regie stehen, eine Datenbank mit einem Agenten auf dem jeweiligen Server installieren, der mit agent.RunOnServer die Variable lesen kann

2. In der lokalen Datenbank in einem Einstellungsdokument die maximale Anzahl Dokumente je Server hinterlegen und diesen Wert verwenden. Die Werte könnten evtl. automatisch befüllt werden, wenn mit einer Prüfroutine in Datenbanken ein FTSearch ausgeführt wird, das alle Dokumente zurückgeben müsste. Ist die Anzahl der zurückgegebenen Dokumente kleiner als die erwartete, ist diese Anzahl die maximale Anzahl Dokumente

Offline Pyewacket

  • Senior Mitglied
  • ****
  • Beiträge: 310
  • Geschlecht: Männlich
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #6 am: 14.10.16 - 07:55:17 »
Der Punkt 1 ist etwas overkill denn so oft ändert sich die notes.ini ja
nicht dass man das jedesmal abfragen müsste. Mein Vorschlag wäre ein
Agent in jeder der Datenbanken der beim Serverstart den Wert ausliest
und in ein Parameterdokument schreibt. Das kann dann vom Client ebenfalls
abgefragt werden. Ist die Anzahl gefundener Einträge gleich dem Maximum
dann kann man vermutlich davon ausgehen daß gekappt wurde.
Sollte eine Änderung des notes.ini Parameters bei laufendem Server aktiv werden
muss der Agent eben periodisch laufen.

Peter
ATOS.org - Feel the music!

Jürgen Schomann

  • Gast
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #7 am: 14.10.16 - 18:51:24 »
Danke für eure Hinweise.
Den Vorschlag mit dem Agenten hatte ich selbst schon vorher getestet, Es geht ja, aber das Handicap wird sein, diese Agenten technisch (durch sehr administrative Zwänge beim Kunden) in alle betreffenden Datenbanken zu installieren.
Außerdem stehen die gewünsche Datenken nicht so ohne weiteres vorher fest (große Palette von Datenbanken).
Ich habe auch schon mal die Datenbank statt lokal, auf einen Server gelegt und kann dann in dieser Datenbank den Agenten mit o. g. NotesSession.SendConsoleCommand für die einzelnen Server ausführen.
Ausgangspunkt wird aber wohl eine lokale Datenbank bleiben, da wie gesagt bei Änderungen der Anwendung der Schablonenwechsel ein sehr strenger und leider sehr zeitaufwendiger Prozess beim Kunden ist.

Schwachpunkt bleibt ja Notes, dass so eine wichtige Information nicht mit den angebotene Notes-Klassen, bereitstellt wird.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #8 am: 16.10.16 - 11:48:25 »
Den Vorschlag mit dem Agenten hatte ich selbst schon vorher getestet, Es geht ja
Dann hast Du technisch ja schon eine Lösung

, aber das Handicap wird sein, diese Agenten technisch (durch sehr administrative Zwänge beim Kunden) in alle betreffenden Datenbanken zu installieren.
Außerdem stehen die gewünsche Datenken nicht so ohne weiteres vorher fest (große Palette von Datenbanken).
Wieso ist die Palette der Datenbanken hier relevant, und wozu musst Du den Agenten in diese Datenbanken installieren? Nutzen verschiedene Datenbanken auf dem gleichen Server verschiedene INI-Dateien?

Schwachpunkt bleibt ja Notes, dass so eine wichtige Information nicht mit den angebotene Notes-Klassen, bereitstellt wird.
Ah, jetzt ist wieder Notes schuld. Sorry, ich kann das einfach nicht mehr hören. Der Schwachpunkt ist m.E. hier (entschuldige, wenn ich das so hart formuliere), die mangelnde Kreativität, im Rahmen der gegebenen - sicherlich berechtigten - Restriktionen seitens des Kunden, eine funktionierende Lösung zu finden.

Du brauchst eine Information aus der Notes.ini aller betroffenen Server. Wenn diese Information auch für den Kunden so wichtig ist, wie Du schreibst, dann sollte es wohl möglich sein, eine von allen betroffenen Datenbanken unabhängige Datenbank bereitzustellen, in der diese Information je Server abgelegt wird, entweder in einer Datenbank auf einem Server, die alle Informationen aller Server beinhaltet, oder in einer Datenbank je Server, in der jeweils die Information des jeweiligen Servers enthalten ist. Die Pflege der Daten könnte manuell durch die Admins erfolgen, oder, falls das zu aufwändig oder ungenau ist, liest ein Agent in dieser Datenbank die Informationen automatisch aus und schreibt sie in die Dokumente der Datenbank, ganz nach Belieben und Art der Restriktionen (z.B. könnte ein, wo auch immer gespeicherter, Agent die Information in das Serverdokument des NAB schreiben, dazu braucht noch nicht einmal die Gestaltung des Adressbuches geändert zu werden). Und aus dieser Datenbank liest Du die benötigte Information. Eine Änderung der zu durchsuchenden Datenbanken ist damit nicht verbunden, incl. Test-und Freigabeprozess je betroffener Schablone.

Falls beim Kunden die zu durchsuchenden Datenbanken nach irgendeinem Standard zertifiziert sind, ist dieses Zertifikat mit Erweiterung um einen Agenten ungültig. Da stehen ggf. Kosten dahinter, für die sich andere ein neues Auto kaufen. Also Finger weg von fremden Datenbanken, die nur von außen durchsucht werden sollen. Eine zentrale und anwendungsunabhängige Lösung hat außerdem den Vorteil, dass sie von verschiedenen Routinen verwendet werden kann.

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #9 am: 16.10.16 - 14:43:24 »
Einmal nach "*" suchen sollte alle, bzw so viele Dokumente liefen, wie in der ini-variable eingestellt ist.
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Jürgen Schomann

  • Gast
Re: Volltexsuche - maximale Anzahl Dokumente
« Antwort #10 am: 16.10.16 - 20:39:06 »
Zu Peter, was soll ich dazu noch sagen: Getroffene Hunde bellen laut?
Ich hatte nur mal angedeutet, dass FTSearch den Anwender im Unklaren lässt ob die Anzahl der Treffer wirklich alle sind oder durch die ini-Variable abgeschnitten wurde.
Und wenn ich diese Information eben nicht mit der Funktion bekomme, sondern ggf. nur über Umwege, ist es nicht ganz in Ordnung.
Du hattest schon vor langer Zeit auch mal die LotusScript-Funktionen StrToken bzw. Split kritisiert, dass diese unkorrekt arbeiten und du eigene Klassen benutzt.
Wenn man hier schon keine Kritik mehr üben darf, ist es schade. Aber keiner ist vollkommen und Streit hier am wenigsten von Nutzen.
Übrigens die Datenbanken liegen durchaus auf unterschiedlichen Servern.

Zu Roland, deine Idee ist gut, kritisch nur wenn auf einigen Servern das Maximum sehr hoch eingestellt ist und man beim Ermitteln dann ggf. viel Zeit braucht.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz