Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: buzi am 25.02.16 - 09:31:47

Titel: FTSearch gibt kein Ergebnis bei Namen mit Punkt "."
Beitrag von: buzi am 25.02.16 - 09:31:47
Hallo zusammen,

ich habe eine Datenbank zur Pflege übernommen, in der eine Suchmaske enthalten ist. Der "Klassiker", eine Such-Maske mit Feldern, die in der original Maske enthalten sind. Der Benutzer wählt die gewünschten Kriterien aus und kriegt die entsprechenden Dokumente in einer Ansicht geliefert. In der Maske selbst wird ein Query zusammengebaut, der dann in einem Agenten ausgeführt wird als Volltext-Suche. Funktioniert soweit alles prima. Nur dann nicht, wenn der Benutzer nach dem Namen sucht und darin ein Punkt enthalten ist. Dann gibt es 0 Ergebnisse.

Beispiel wie der Aufruf dann aussieht:

Code
Set dcSResult = dbForSearch.FTSearch(query, retrieve, stype, useint)

Die Parameter haben folgende Werte:

Code
query = ((([Form] = frmXXX)) AND (([partTeName] = H. Mueller AG)))
retreive = 0
stype = 0
useint = 1024

Die Suche geht bei allen Namen, wo kein Punkt enthalten ist einwandfrei.

Hat jemand eine Idee?
DANKE!

Titel: Re: FTSearch gibt kein Ergebnis bei Namen mit Punkt "."
Beitrag von: Tode am 25.02.16 - 11:39:16
Dann ist Dein Volltext- Index kaputt... bei mir geht das (grade eben ausprobiert).

Hast Du schonmal probiert, den Text in Anführungszeichen zu setzen (mache ich eigentlich bei Queries immer):
Code
query = ((([Form] = frmXXX)) AND (([partTeName] = "H. Mueller AG")))
Titel: Re: FTSearch gibt kein Ergebnis bei Namen mit Punkt "."
Beitrag von: buzi am 02.03.16 - 09:10:17
Hallo Tode,

vielen Dank für deine Hilfe! Den Volltext-Index habe ich neu erstellt, das hat allerdings nicht zum gewünschten Ergebnis geführt. Aber die Suche mit Anführungsstrichen hat das Problem behoben! Ist es generell "richtiger", in Anführungsstrichen zu suchen?

Melanie
Titel: Re: FTSearch gibt kein Ergebnis bei Namen mit Punkt "."
Beitrag von: Tode am 02.03.16 - 13:37:31
Prinzipiell ja. Wenn wir mal das Thema "Code injection" aussen vor lassen, könnte ja immer jemand z.B. "Frech & Froh" heißen.

Dann wird aus Deinem Query:

((([Form] = frmXXX)) AND (([partTeName] = Frech & Froh)))

Diese Query würde nach partTEName = Frech suchen und ausserdem in allen Feldern nach Froh...