Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Daniel D. am 16.01.08 - 08:15:40

Titel: FTSearch nach Dateinamen von Anhängen
Beitrag von: Daniel D. am 16.01.08 - 08:15:40
Moin,

ich versuche mich gerade an einer Funktion, die prüft, ob eine vom Nutzer angehängte Datei bereits in einem anderen Dokument der Datenbank vorhanden ist. Dazu will ich eine FTSearch mit dem Dateinamen durchführen.

Das Problem dabei ist, dass diese Suche nicht alle Dokumente mit einem entsprechenden Anhang findet.
Bsp. : Ich habe ein Dokument mit einer Datei A.pdf, welches mit Suchbegriff A.pdf auch gefunden wird. Erstelle ich eine Kopie dieses Dokuments, so wird diese auch gefunden. Erstelle ich dagegen ein neues Dokument mit ebendieser A.pdf und aktualisiere den Index, wird dieses Dokument nicht gefunden.
Weiss jemand, wie die Suche und der Index die Dateinamen behandeln, und ob eine Suche auf Dateinamen so überhaupt funktioniert??

Gruß,
Daniel
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: ata am 16.01.08 - 10:16:59
... es kann einige Zeit dauern, bis der Volltext-Index neu aktualisiert ist - vielleicht liegt es daran...

Toni
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: klaussal am 16.01.08 - 10:19:10
... und ist der Haken gesetzt bei "angehängte Dateien indizieren" ?
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: diali am 16.01.08 - 10:23:01
wenn Du immer nach dem kompletten Namen suchen willst, dann würde ich eine Ansicht machen, in der ersten sortierten Spalte @AttachmentNames als Formel eintragen und mit NotesView.GetAllDocumentsByKey arbeiten. Vorteil der Ansichtsindex wird neu aufgebaut und bei FT-Suchen suche ich meist in einem veralteten Index.
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: Neopi am 16.01.08 - 10:25:09
Hallo Daniel,

ich würde den Dateinamen in ein seperates Feld stecken, dann brauchst Du nur in dem Feld suchen.
Geht schneller als über den Index.

@AttachmentNames -> Formel in Ansicht ist unperformant.

Gruß
Martin
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: diali am 16.01.08 - 10:50:35
aus der Performance-Sicht hast Du recht, aber wenn es um eine vorhandenen Anwendung geht, dann müssten alle Dokumente nochmal nachberechnet und die Anhangsnamen in ein Feld eingetragen werden.

Je nach Anwendung ist es eventuell nicht gewünscht, dass sich der Bearbeiter ($UpDatedBy) und das Bearbeitungsdatum (@Modified) ändert, dann bleibt nur der Weg übder die Ansicht mit den @AttachmentNames in der ersten sortierten Spalte.
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: Neopi am 16.01.08 - 12:29:36
Hi Diali,
da hast Du natürlich recht. Ist immer wieder ein Problem.

Ich habe mir deshalb in letzter Zeit angewöhnt den letzten Bearbeiter und das Bearbeitungsdatum in eigene Felder zu schreiben damit solche Masken & Dokumenten updates nicht zu Verwirrung stiften.

Nachforderungen an Anwedungen kommen ja immer wieder mal vor.

Martin
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: Daniel D. am 16.01.08 - 15:11:18
Ich werde es mit dem zusätzlichen Feld lösen, da die DB erst noch neu befüllt wird. Danke für die Tips!

Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: Daniel D. am 17.01.08 - 11:36:38
Moin zusammen,

ich stehe vor einem weiteren Problem:
Die Lösung über eine Ansicht funktioniert einwandfrei, allerdings nur wenn alle Dokumente höchstens ein Attachment haben. GetAllDocumentsbyKey gibt keine Treffer zurück, wenn ein Dokument nicht als erster Anhang in der Textliste der Anhänge aufgeführt wird, auch nicht mit exact auf false. Gibt es hier noch eine Möglichkeit für eine elegante Lösung?
Meine Notlösung wäre es jetzt die maximale Anzahl von Anhängen zu begrenzen und entsprechend viele Felder und Ansichten zu verwenden, das wäre allerdings nicht so toll...

Die Ursache für mein eingangs geschildertes Problem mit ftsearch habe ich auch gefunden: hier wird ebenfalls nur jeweils der erste Anhang eines Dokuments gefunden.

Gruß,
Daniel
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: diali am 17.01.08 - 11:37:50
ja lass Mehrfachwerte getrennt anzeigen oder mach aus der Spalte eine Kategorie.
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: Daniel D. am 17.01.08 - 12:08:19
Super, das ging ja schnell... :D
Es läuft, danke Dir!
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: Daniel D. am 24.01.08 - 16:35:44
Moin,

noch ein Problem in diesem Zusammenhang:

Ich möchte den Prüfalgorithmus im querysave-Event aufrufen. Ich habe allerdings keine Möglichkeit an die Daten des Dateianhanges zu kommen, solange das Dokument nicht gespeichert wurde. Ich kann es aber nicht speichern, solange ich mich in querysave befinde (zumindest hat das nicht funktioniert). Gibt es eine Möglichkeit an die Daten (Dateiname, Dateigröße) des Anhangs heranzukommen?

Gruß,
Daniel
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: koehlerbv am 24.01.08 - 16:58:20
Nein. Bzw.: Du musst tricksen.
Kopier Dir den Inhalt des RTF im Frontend via Zwischenablage in ein persönliches ProfileDoc (damit gibt es anschliessend nicht so viel Leichen im Keller der DB).
Dieses ProfileDoc speicherst Du, und nun hast Du die Angaben, die Du brauchst.

HTH,
Bernhard
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: Daniel D. am 28.01.08 - 14:53:32
Moin,
Schade, dass es da keine schönere Lösung gibt, aber trotzdem danke für den Tip. Ich mache es jetzt im postsave-event, da es mittlerweile kein Abbruch-Kriterium mehr ist und zweitens ich dem Nutzer nicht die Zwischenablage plattmachen will.

btw: Was bedeutet denn das HTH bei Dir, Bernhard?

Gruß,
Daniel
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: koehlerbv am 28.01.08 - 14:58:51
Guckst Du Glossar (http://atnotes.de/index.php?topic=12535.0).

Bernhard
Titel: Re: FTSearch nach Dateinamen von Anhängen
Beitrag von: klaussal am 28.01.08 - 15:00:10
HTH / Hope That Helps / Hoffe, es hilft

Siehe Glossar...