Beträge in Filetable-DS suchen

drnicolas

Benutzer
Beiträge
9
Ich versuche in Dokumenten (die in einer FileTable gespeichert sind) nach Beträgen zu suchen. Das sind vorzugsweise rechnungen.

Das funktioniert mässig gut.

Select * from Doks where contains(file_stream, '345.12') funktioniert oft, aber nicht immer.

Dasselbe mit '345,12' [Komma!] funktioniert nicht und führt zu einer Fehlermeldung.
Irgendwo habe ich gefunden, dass in Contains der Punkt für das Dezimalzeichen steht - unabhängig von der Sprache.

Was überhaupt nicht funktioniert CONTAINS(...,'Rechnungsnummer AND 345.12')

Leider schweigen sich alle Hilfe-beitraäge zu diesem Thema komplett aus.

Kann mir jemand auf die Sprünge helfen?
 
Werbung:
Vermutlich nutzt die Mehrheit einen Volltextindex für solche Suchen, ich habe da aber leider in keinem Bereich Erfahrung.
 
Werbung:
Ohne das System zu kennen, Volltextindizes arbeiten meist mit etwas unscharfen Verfahren, um eine maximale Performance zu erreichen. Sie dienen wie der Name andeutet mehr der Textsuche, weniger buchhalterischen Fragestellungen.
Genau dieser Volltextindex ist vorhanden.
Hier ist der Aufbau des Index entscheidend. Meist wird hier mit relativ rustikalen Mitteln gearbeitet. "Wörter" kürzer als 3 Buchstaben z.B. werden ignoriert (gar nicht im Index aufgenommen)
Beispiel: Wieviel Sinn macht es, in beliebig langen Texten nach dem Wort "zu" zu suchen? Ja, wenig. In diesem Fall bekommt man tausende Treffer die einen nicht weiter bringen.

Meist kann man diese Indizierung auch beeinflussen. Z.B. Wörter die suchbar sein sollen, konkret aufnehmen, Positivliste, Wörter die uninteressant sind in die Negativliste.

Was bei MS SQL Server in Deiner Version alles einstellbar ist, weiß ich nicht.
Leider schweigen sich alle Hilfe-beitraäge zu diesem Thema komplett aus.
Was meinst Du damit? Forenbeiträge oder MS Dokumentation?
 
Zurück
Oben