none
Volltextindex hat nicht alle Daten RRS feed

  • Frage

  • Liebes Forum,

    ich nutze den SQL Server 2017 in der DEV Variante auf einem Server 2012 R2 und habe eine File-Table DB angelegt wo ich mein ganzes Zeitungsarchiv (12.000 PDF Dateien) abgelegt habe. Alles ist im Prinzip o.k., er findet viel, aber wenn ich nach bestimmten Begriffen suche, findet der SQL Server nichts. Meine Abfrage ist wie folgt aufgebaut:

    SELECT name, last_write_time, rank
        FROM dbo.FileTable AS ft INNER JOIN
        CONTAINSTABLE(dbo.FileTable, *, ' "Ex-Betriebsratschefs" ') 
        ON ft.[stream_id] = [KEY]
        ORDER BY rank desc

    Wenn ich nach diesem Begriff suche findet er nichts, obwohl in 2 Zeitungen dieser Begriff so geschrieben wurde. Anderes Beispiel das Wort "Nachttanzdemo". Der Begriff tauchte in einer Zeitung mehrmals auf, diese PDFs sind durchsuchbar, somit müßte er den Begriff finden, tut er aber nicht. Zum Test habe ich den Artikel mit dem Wort Nachttanzdemo in ein Word Dokument getan und diese Datei in meinen Share abgelegt. Sofort hat der SQL Server das Wort gefunden. Dann habe ich die gleiche Word-Datei als PDF abgespeichert und ebenfalls in den Share abgelegt, Ergebnis: kein Treffer. Ich weiß nicht warum der SQL Server bei der Indexierung so "wählerisch" ist. Kann mir jemand diesbezüglich Tipps geben? Meine DB ist 160 GB groß und mein Index 8 GB. Ich habe den Index schon mehrmals neu aufgebaut, immer komme ich zum selben Ergebnis. Bin für jeden Tipp dankbar.

    Ulmo_connect

    Montag, 3. Juni 2019 19:24

Antworten

  • Du kannst eine PDF auch mal als Text (Notepad) öffnen und dann nach dem Wort suchen.
    PDF ist eine Postscript/Ghostscript-Datei, enthält also neben dem Text jede Menge andere Infos.
    Der PDF-Viewer weiß dies und kann daher die Texte suchen und finden.
    SQL kennt aber keine PDF-Struktur sondern indiziert die Worte nach entsprechenden Trennzeichen.
    Nun wird es so sein, dass dein gesuchtes Wort in der PDF vor und/oder nachher noch weitere Zeichen enthält, die SQL nicht als Trennzeichen erkennt.
    Nun kann es daher sein, dass die das Wort in SQL nur findest, wenn du es incl. des Vor-/Nachspannes suchst, falls es überhaupt indiziert wurde.

    https://blog.sqlauthority.com/2018/02/12/sql-server-full-text-search-not-working-pdf-documents/

    Mittwoch, 5. Juni 2019 14:41

Alle Antworten

  • Du kannst eine PDF auch mal als Text (Notepad) öffnen und dann nach dem Wort suchen.
    PDF ist eine Postscript/Ghostscript-Datei, enthält also neben dem Text jede Menge andere Infos.
    Der PDF-Viewer weiß dies und kann daher die Texte suchen und finden.
    SQL kennt aber keine PDF-Struktur sondern indiziert die Worte nach entsprechenden Trennzeichen.
    Nun wird es so sein, dass dein gesuchtes Wort in der PDF vor und/oder nachher noch weitere Zeichen enthält, die SQL nicht als Trennzeichen erkennt.
    Nun kann es daher sein, dass die das Wort in SQL nur findest, wenn du es incl. des Vor-/Nachspannes suchst, falls es überhaupt indiziert wurde.

    https://blog.sqlauthority.com/2018/02/12/sql-server-full-text-search-not-working-pdf-documents/

    Mittwoch, 5. Juni 2019 14:41
  • Vielen Dank für den iFilter Tipp von Adobe. Mein SQL Trainer meinte, man braucht den IFilter von Adobe nicht, die Windows eigene PDF.DLL ist völlig ausreichend. Dem muss ich jetzt eindeutig widersprechen. Mein Problem ist somit gelöst. 
    Dienstag, 11. Juni 2019 08:08