Ich versuche viele Dokumente in einer filetable nach bestimmten Begriffen zu durchsuchen.
Es handelt sich um - Geburtsdaten
- Aktenzeichn
- Nachnamen
Dazu verwende ich etwas in der Art "SELECT * FROM myfiletable WHERE CONTAINS(file_stream,<suchstring>)"
Das funktioniert nicht schlecht, schlägt aber mit einem Syntax error in der Nähe von <suchstring> fehl, falls ein >SPACE> enthalten ist.
Beispiel: Suche nach "I4711" -> geht
Suche nach "I 4711" -> Syntax error
Meine Recherchen haben ergeben, daß CONTAINS wohl den Suchstring nicht unbedingt als "I 4711" interpretieren möchte, sondern gerne als "I or 4711". Somit würde die Verknüpfung fehlen und der Syntax error wäre erklärt.
Wie aber suche ich nach exakt dem Suchstring "I 4711"? CONTAINS geht eigentlich sehr schnell während eine Suche mit LIKE '%I 4711%' elend lange dauert.
Ich schätze, daß liegt daran das CONTAINS den Volltextindex benutzt, während LIKE alles durchkämmt.
Andererseits müsste ich dann versuchen, dem Volltextindex all die Daten, Aktenzeichn und Namen einzuverleiben.
Oder mache ich da einen generellen Denkfehler ?