Domino 9 und frühere Versionen > Entwicklung
Wie automatisch Volltextindex für neu erstellte Datenbank erstellen
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