Domino 9 und frühere Versionen > Entwicklung

Wie automatisch Volltextindex für neu erstellte Datenbank erstellen

<< < (2/2)

DrNotes:

--- Zitat von: DrNotes am 10.11.05 - 11:06:07 ---
--- Zitat von: koehlerbv am 10.11.05 - 10:05:36 ---Klar kann man das in LS machen. Vorschlag:
Im PostOpen
- checken, ob der aktuelle User die Rolle [Gott] hat
- checken, ob die DB auf dem Server geöffnet hat
- checken, ob die DB einen FTI hat, wenn nicht, einen neuen FTI erzeugen.

HTH,
Bernhard


--- Ende Zitat ---
Hallo Bernhard,

sorry für mein Unverständnis, aber die "UpdateFTIndex method" funktioniert nur bei lokalen Datenbanken, nicht aber auf serverbasierenden.
Obige Voraussetzungen sind natürlich erfüllt.

Usage
Notes returns an error if you attempt to create a full-text index on a database that is not local.


Was mach ich jetzt?

--- Ende Zitat ---

Problem gelöst - für alle die's interessiert:

Erstelle einen Agenten: "CreateFullTextIndex"
Sub Initialize
'wird beim erstenmal starten der Datenbank in der Ansicht "Dokumente" (Default-Ansicht) gestartet bzw. wird der Index angelegt
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Set db = session.CurrentDatabase
   
   If Not ( db.IsFTIndexed ) Then
      Call db.UpdateFTIndex( True )
   End If
   
End Sub

In meiner Default-Ansicht der Datenbank steht folgender Code:
Sub Queryopen(Source As Notesuiview, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
   
Dim agent As NotesAgent   
Dim status As Integer
Set agent = db.GetAgent("CreateFulltext-Index")
status = agent.RunOnServer()
'Messagebox("Status" & status)   
End Sub

koehlerbv:
Hallo Tom,

sorry wegen des vergessenen Hinweises auf die Einschränkung, dass UpdateFTIndex nur lokal funktioniert. Ich habe da Dein Problem wirklich zu oberflächlich betrachtet bzw. beantwortet, und das wider besseren Wissens.

Ein Tip hätte ich noch: Zur Performance-Steigerung würde ich das
If Not ( db.IsFTIndexed ) Then
vom Agent in das Event verlegen, welches den Agent startet. Dort würde ich auch noch abfragen, ob die DB lokal oder serverbasierend ist (im ersteren Fall kann der FTI ja wirklich direkt angelegt werden).

Nochmals: Bitte entschuldige meine unvollständige Ansage.

Bernhard

DrNotes:

--- Zitat von: koehlerbv am 10.11.05 - 23:10:00 ---Hallo Tom,

sorry wegen des vergessenen Hinweises auf die Einschränkung, dass UpdateFTIndex nur lokal funktioniert. Ich habe da Dein Problem wirklich zu oberflächlich betrachtet bzw. beantwortet, und das wider besseren Wissens.

Ein Tip hätte ich noch: Zur Performance-Steigerung würde ich das
If Not ( db.IsFTIndexed ) Then
vom Agent in das Event verlegen, welches den Agent startet. Dort würde ich auch noch abfragen, ob die DB lokal oder serverbasierend ist (im ersteren Fall kann der FTI ja wirklich direkt angelegt werden).

Nochmals: Bitte entschuldige meine unvollständige Ansage.

Bernhard

--- Ende Zitat ---

Hallo Bernhard,

die "If Not ( db.IsFTIndexed ) Then" hatte ich schon in das Event verlagert - da hatten wir den gleichen Gedanken.

Danke nochmals....LG

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln