Domino 9 und frühere Versionen > ND7: Entwicklung

Verwirrung: Agent manuell aufgerufen geht - per Script nicht -> hä?

<< < (2/3) > >>

Basti*:

--- Zitat von: Pitiyankee am 14.08.12 - 10:37:48 ---Kannst Du bitte vorher einmal den Volltext-Index noch mal neu aufbauen und dann den Agenten noch mal starten?

--- Ende Zitat ---

Vor dem Aufruf von db.ftsearch wird der DB-Index automatisch per Script aktualisiert.

If ( db.LastModified > db.LastFTIndexed ) Then
   Call db.UpdateFTIndex(False)
End If

Das müsste doch identisch mit dem manuellen Neuaufbau sein, oder?

Peter Klett:
Notes produziert von sich aus keine "Geisterdokumente" (außer Replizier- und Speicherkonflikte, falls man die dazu zählen möchte). Es könnte sich dabei um Überbleibsel aus missglückten Funktionen handeln. Wenn zum Beispiel Dokumente erstellt wurden, ohne das Feld Form zu füllen und in allen Ansichten nach Form selektiert wird, sind die nicht sichtbar. Ein FTSearch (oder auch ein Search) findet die natürlich, wenn nach anderen Feldern gesucht wird, ohne dass Form berücksichtigt wird.

Zur Diskussion Ansicht vs. Search

Ich bevorzuge ein Search, da dann vom Server keine Ansicht aktualisiert werden muss. Die fehlende Ansicht kann natürlich auch nicht kaputtgehen. Natürlich ist ein Search langsamer als eine Ansicht, da ja praktisch eine temporäre Ansicht aufgebaut werden muss. Unschlagbar ist ein Search, wenn Username und/oder Datum im Select enthalten ist. Natürlich ist der Kontext auch wichtig zu beachten. Ist es eine Useraktion, bei der Performance sehr wichtig ist, ist eine Ansicht vorzuziehen, bei Hintergrundagenten, die nachts laufen, und bei denen es nicht darauf ankommt, ob sie ein paar Minuten langsamer sind, halte ich Search für die erste Wahl. Ein "Richtig" oder "Falsch" gibt es allerdings m.E. nicht.

Basti*:
Suchmethoden sind doch immer wieder ein spannendes und nicht ganhz unwichtiges Thema ;)

In wiefern können Ansichten kaputt gehen?

Wie schaut es mit der Performance bei Ansicht vs. Search vs. FtSearch aus? Ich habe in der DB gut 120.000 Dokumente.

Wie ist das bei dieser Anzahl an Dokumenten beim Suchen, wo ich mal ein Dokument oder mal eine Handvoll finden möchte? Ist da Ansicht, die normale Search oder dann doch ftSearch besser? Man könnte ja Ansichten für die wichtigsten Abfragen bauen. Dann stapeln sich aber die VerwaltungsAnsichten ... schlimm?

Wie sollte man btw. eine unscharfe Suche realisieren? Ich möchte Dokumente finden, die irgendwo in einem der Felder z.B. ein "ABCD" stehen haben, aber auch "ABCF" oder "ABC-D". Wenn ich das richtig im Kopf habe, dann geht das doch nur über die db.ftsearch, oder?

Peter Klett:
Bei Ansichten kann der Ansichtsindex kaputtgehen, der muss dann administrativ neu aufgebaut werden. (z.B. mit einem load updall -r)

Früher habe ich alles über Ansichten realisiert, damit waren sehr viele (sogar zu viele, weil ich es allgemeingültiger hätte machen können) Ansichten vorhanden. Und ab und zu ging auch mal eine kaputt (natürlich nur unter Notes 4, heute passiert sowas bestimmt nicht mehr  :-X ).

Beim nächsten Projekt bin ich vom einen Extrem zum anderen gegangen und verwende heute kaum versteckte Ansichten (sichtbare Ansichten benutzte ich natürlich niemals für Agenten oder andere Funktionen). Bisher (also in den letzten sieben Jahren) bin ich ganz gut damit gefahren. An Fehlerzustände aufgrund defekter Ansichten kann ich mich nicht mehr erinnern.

Zum Nutzen der Volltextsuche kann ich nicht viel beitragen, weil ich die nicht mag und deshalb nicht nutze (pränatal vertriebener Ostpreußendickschädel). Wenn Deine Suchen nur mit FTSearch darstellbar sind, nutze es. Vielleicht hilft aber auch sowas wie @Contains oder @Matches (nie benutzt, nur mal gelesen) oder ähnliches im Search.

ata:
... Geisterdokumente kenne ich auch noch als Löschstubs - Dokumente ohne Felder und ohne UNID und doch da, die können einem immer wieder mal in die Quere kommen. Mit

If doc.IsValid Then ...

... kann man die abfangen...

Ich verwende aus Gründen der Performance lieber Views. Der Search kann bei 120000 Dokumenten dann schon ziemlich lange dauern. wenn er mehrfach hintereinander gefahren wird habe ich schon beobachtet, dass er dann schneller die Collection liefert. Der FT-Search hat so seine Macken - im Standard liefert er nur 5000 Dokumente zurück. Ausserdem mußt du auf den aktualisierten Index achten - nicht mein "Liebling"...

Den Select einer View kann man auch programmatisch ändern - allerdings kostet der View.Refresh dann auch seine Zeit. Daher gehe ich öfters mal den db.Search - der liefert alle Dokumente - aber eben langsamer...

Toni

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln