Domino 9 und frühere Versionen > Entwicklung

Problem mit FTSearch

(1/2) > >>

Ralph:
das man mit FTSearch ganze DB's durchsuchen kann weiß ich, aber wie kann mann die Suche nur auf das aktuelle Document begrenzen.
zur Erläuterung: bei der datenübernahme aus einer DB soll jedes Document auf bestimmte Schlüsselworte geprüft werden, wenn diese nicht vorhanden sind soll das Doc gespeichert werden.
es nützt nichts wenn die ganze QuellDB durchsucht wird, mann würde immer etwas finden.

Hier mein Skript

keySearch = | Select Form = "KM" |
Set cdocKey = dbkey.Search(keySearch,dateTime,0) '# alle Documente aus KeyAnsicht
Set docKey2 = cdocKey.GetFirstDocument
   For j =1 To cdockey.count
Set docKey = cdocKey.GetDocument(docKey2)  '#        erste Dokument aus KeyAnsicht
               
Set csearch = dbNab.FTSearch(dockey.keywordMaske(0),0)
               
               
Set dockey2 =cdocKey.GetNextDocument(dockey2)      
Next

Isa:
Du suchst ja einen Wert, der in einem Feld sein muss. Deshalb musst Du das Feld / die Felder aufrufen und bzw. deren Inhalt auslesen und mit dem Vorgabewert vergleichen.
FTSearch ist nun mal nur für die DB.
Dazu könntest Du z.B. InStr verwenden (gibt die Position des gesuchten Wertes) oder StrCompare.

wflamme:
.FTSearch-Methode ist auch für NotesDocumentCollection verfügbar!

ata:
... warum eigentlich db.FTSearch(...) ? - Dazu braucht man ja einen Volltextindex der DB...

... es würde schon genügen einen DB.Search(...) zu verwenden und in der Suchformel @Contains oder derartiges zu verwenden...

ata

wflamme:
Und überhaupt mal eine dumme Frage:
Wieso führst Du nicht Dein db.FTSearch durch und 'subtrahierst das Ergebnis von db.AllDocuments?
Da müßte dann doch die collection übrigbleiben, die Du speichern willst?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln