none
Volltextsuche in FileTABLE verbessern RRS feed

  • Frage

  • Ich versuche  derzeit eine Suche in den Dokumenten einer FILETABLE zu etablieren.

    Das funktioniert erstaunlich gut, aber in bestimmten Fällen überhaupt nicht.

    Und zwar betrifft dies Faxe mit bestimmmten Verwaltungsnummern.

    Die Faxe sind per OCR bearbeitet und können durchsucht werden, d.h. wenn ich im Adobe Reader nach dieser Verwaltungsnummer suche, dann wird sie gefunden.

    Leider trifft das bei einer Suche im Volltext über CONTAINS nicht (immer) zu. Über Geburtsdaten lässt sich ganz gut suchen, auch über Namen, aber eine abstrakte Auftragsnummer geht nicht. Die besteht  aus einem A und 6-8Ziffern.


    Lässt sich das noch perfektionieren ? Es sollte natürlich keine Methode sein, die speziell auf diese Auftragsnummern ausgerichtet ist.

    Sonntag, 29. Juni 2014 10:27

Antworten

  • Bei jedem der Wizards hast Du oben links einen Button, um Dir das T-SQL Skript für die Aktion generieren zu lassen; nimm das und führe das T-SQL in einem Abfragefenster von SSMS aus.

    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert NicoNi Dienstag, 1. Juli 2014 21:11
    Dienstag, 1. Juli 2014 06:57
  • genauer gesagt: Teilen dieser Nummern

    Hallo Nico,

    die CONTAINS lässt den ein Wildcard nur als Postfix (Begriff*), aber nicht als Prefix (*Begriff) zu, von daher ist die Suche nach Teilen eines Textes auch eingeschränkt möglich.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert NicoNi Mittwoch, 9. Juli 2014 08:50
    Dienstag, 8. Juli 2014 09:13

Alle Antworten

  • Hallo

    dafür wäre es gut, zu wissen, wie genau diese Daten jetzt gespeichert vorliegen. Das geht für mich nicht eineutig hervor. Also arbeitest Du mit dem iFilter für pdf?
    Noch besser wäre es, auch den Code einmal zu sehen, sowohl für die Schema-Definition als auch die Abfrage(n).


    Andreas Wolter (Blog | Twitter)
    MCM - Microsoft Certified Master SQL Server 2008
    MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
    www.andreas-wolter.com | www.SarpedonQualityLab.com

    Sonntag, 29. Juni 2014 20:47
  • Hallo Nico,

    es hängt auch etwas davon ab, wie der FTS Index angelegt wurde. Im Standard wird nicht jedes Wort indiziert, z.B. der/die/das/er/sie/es werden für einen deutschsprachigen FTS nicht indiziert, weil diese in einfach jedem Text vorkommen. Man kann die "neutrale" Sprache verwenden, dann werden alle (bis auf einzelne Zeichen/Ziffern) Wörter indiziert, nur verlierst Du dann die Möglichkeit eine Ähnlichkeits-/Thesaurus-Suche zu machen. Kannst Du mit der sys.dm_fts_parser (Transact-SQL) austesten:

    SELECT *
    FROM sys.dm_fts_parser('"Ich fahre von der A 2 auf die A352"', 1031, 0, 0)
    SELECT *
    FROM sys.dm_fts_parser('"Ich fahre von der A 2 auf die A352"', 0, 0, 0)

    Mit Sprachcode 1031 = DE hat man nur 2 "Exact Match", der Rest ist "Noise Word":


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Montag, 30. Juni 2014 08:06
  • Ich habe gerade versucht, die Sprache auf <neutral> zu stellen.

    Danach taucht relativ lange die Sanduhr auf,dann eine Fehlermeldung

    TITEL: Microsoft SQL Server Management Studio
    ------------------------------

    Änderungen können nicht ausgeführt werden.

    ------------------------------
    ZUSÄTZLICHE INFORMATIONEN:

    Fehler bei Löschen für FullTextIndexColumn 'file_stream'.  (Microsoft.SqlServer.Smo)

    Hilfe erhalten Sie durch Klicken auf: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=11.0.3000.0+((SQL11_PCU_Main).121019-1325+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Löschen+FullTextIndexColumn&LinkId=20476

    ------------------------------

    Ausnahme beim Ausführen einer Transact-SQL-Anweisung oder eines Transact-SQL-Batches. (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------

    Das Timeout für Sperranforderung wurde überschritten. (Microsoft SQL Server, Fehler: 1222)

    Hilfe erhalten Sie durch Klicken auf: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.3128&EvtSrc=MSSQLServer&EvtID=1222&LinkId=20476

    ------------------------------
    SCHALTFLÄCHEN:

    OK
    ------------------------------

    Anscheinend dauert die Angelegenheit einfach zu lange

    Aber was tun ?

    Montag, 30. Juni 2014 19:41
  • Bei jedem der Wizards hast Du oben links einen Button, um Dir das T-SQL Skript für die Aktion generieren zu lassen; nimm das und führe das T-SQL in einem Abfragefenster von SSMS aus.

    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert NicoNi Dienstag, 1. Juli 2014 21:11
    Dienstag, 1. Juli 2014 06:57
  • Okay ich habe jetzt die Änderung der Sprache auf neutral umgesetzt.

    Da das ganze fast 1,5h lief, vermute ich mal, daß die Dateien neu indiziert wurden.

    Leider ist der Effekt mäßig.

    Weiterhin kann ich gut nach Namen und Datum suchen, schlecht nach abstrakten Angaben wie der beschriebenen Verwaltungsnummer.

    Gerade das wäre aber wichtig.

    Ich probiere dies gerade auch mal mit einer anderen Tabelle - nämlich der eigentlichen Auftragstabelle.

    Dort gibt es insbesondere 2 Felder nämlich Auftragsnummer und Versicherungsnummer.

    Auch nach denen möchte ich gerne suchen können (genauer gesagt: Teilen dieser Nummern)

    Samstag, 5. Juli 2014 11:30
  • genauer gesagt: Teilen dieser Nummern

    Hallo Nico,

    die CONTAINS lässt den ein Wildcard nur als Postfix (Begriff*), aber nicht als Prefix (*Begriff) zu, von daher ist die Suche nach Teilen eines Textes auch eingeschränkt möglich.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert NicoNi Mittwoch, 9. Juli 2014 08:50
    Dienstag, 8. Juli 2014 09:13
  • Okay, ich glaube, ich habe mir von der Volltextsuche hinsichtlich leistungsfähiger Suche in vorhandenen Daten zuviel versprochen.

    Mittwoch, 9. Juli 2014 08:50