Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Lossa am 05.06.07 - 08:33:45
Titel: Volltextindex per Script erstellen
Beitrag von: Lossa am 05.06.07 - 08:33:45
Hallo,
ich möchte folgendes Erreichen:
Ein User soll über eine Anpassung in seinem Mailfile einen Request, zur Erstellung eines Volltxtindex für diese Datenbank, anfordern können. Dieser wird per Mail an eine zentrale DB gesendet wird. Die User haben nur Editorzugriff auf Ihre Maildatenbank, daher können Sie das nicht selber machen. Ebenso sollen die Indexart/ Zeit für alle gleich sein. Der Request landet als in der Datenbank, dort öffnen die Admin dieses Dokument und darin soll eine Schaltfläche sein, die dem Admin ermöglicht diesen Index zu Erstellen. Der Index soll dann ohne weitere Aktion aufgebaut werden, das heisst also nicht in die Datenbankeinstellungen des Mailfiles reingehen und das manuell einstellen.
Was ich bisher versucht habe:
Der Scriptbefehl: Call db.CreateFTIndex(loptions,True) geht nicht da er nur für lokale Datenbanken genutzt werden kann.
Daher habe ich es mit der API versucht: Hier die Codefragmente: Ich rufe einen Agent auf dem Server auf (RunOnServer) und übergebe das Requestdokument als Parameter.
Dim NULLHANDLE As Long Declare Function NSFDbOpen Lib "libnotes.so" Alias "NSFDbOpen" (Byval dbName As String, hDb As Long) As Integer Declare Function NSFDbClose Lib "libnotes.so" Alias "NSFDbClose" (Byval hDb As Long) As Integer Declare Function FTIndex Lib "libnotes.so" Alias "FTIndex" (Byval hDb As Long, Byval options As Integer, stopfile As Long, stats As Long) As Integer *****CODE **** Print agent.name & ": Working on " & dbFilename rc=NSFDbOpen(dbFilename, hDb) Print agent.name & ": Open Database..." If rc=0 Then Print "Create FT Index" Call FTIndex (hDb, FT_INDEX_ATT, NULLHANDLE, NULLHANDLE) End If
Leider schmiert der Server bei der Call FTIndex voll ab. Das ganze läuft nicht auf einem Windows Server sondern auf AIX und Z/Linux
Für Tips wäre ich sehr dankbar.
Titel: Re: Volltextindex per Script erstellen
Beitrag von: m3 am 05.06.07 - 08:54:38
Titel: Re: Volltextindex per Script erstellen
Beitrag von: Lossa am 05.06.07 - 09:18:47
Hi m3,
im Prinzip ja, aber... Der Index existiert ja noch garnicht und es sind auch keine Einstellungen in den Datenbankeigenschaften vorhanden, daher muss der Index ja erstmal erstellt werden.
Danke aber soweit.
Titel: Re: Volltextindex per Script erstellen
Beitrag von: m3 am 05.06.07 - 09:24:33
Was gehen sollte (IIRC): Schreib einen Agent, der das db.CreateFTIndex(loptions,True) ausführt und ruf ihn über RunOn Server auf:
Code
Dim agent As NotesAgent
Set agent = db.GetAgent("(DBCreateFTIndex)")
Call agent.RunOnServer(reqdoc.NoteID)
Titel: Re: Volltextindex per Script erstellen
Beitrag von: Lossa am 05.06.07 - 09:35:42
Hi m3,
danke ich hatte wohl Tomaten auf den Augen, oder frei nach dem Motto warum einfach, wenn es auch kompliziert geht.
Es rennt so wie es soll.
Danke. Thank you. Merci.
Titel: Re: Volltextindex per Script erstellen
Beitrag von: m3 am 05.06.07 - 09:40:12