Zum Inhalt springen

Über HMTL in hinterlegten PDFs suchen


Melkor

Empfohlene Beiträge

Hi @ll,

ich suche für unser Intranet eine Möglichkeit für ca. 1000 PDFs eine Suchfunktion in HTML zu realisieren, die auf Schlagwörter innerhalb der PDFs anspricht. Könnte mir da jemand weiterhelfen? Kann man über die Browsersuche verlinkte PDFs durchsuchen? Oder wie würdet ihr das umsetzen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich suche für unser Intranet eine Möglichkeit für ca. 1000 PDFs eine Suchfunktion in HTML zu realisieren, die auf Schlagwörter innerhalb der PDFs anspricht.
Über reines HTML wirst du das nicht realisieren können. HTML dient der Darstellung und bietet keinerlei Möglichkeiten der Interaktion mit anderen Datenbeständen.

Um dein Ziel zu erreichen benötigst du daher eine serverseitig ausgeführte Sprache, die entweder direkt auf dem Server die hinterlegten PDFs durchsucht (sehr unperformant) oder aber einen vorher für die hinterlegten PDF-Dokumente erstellten Suchindex abfragt.

Kann man über die Browsersuche verlinkte PDFs durchsuchen?
Nein.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi @ll,

ich suche für unser Intranet eine Möglichkeit für ca. 1000 PDFs eine Suchfunktion in HTML zu realisieren.

Wenn euer Intranet nur aus reinem HTML besteht, wird es recht schwierig dafür eine suchfunktion zu integrieren.

perdi hat es im Grunde schon gesagt, das wäre die Lösung die erstens dynamisch ist und zweitens kann ich den Suchindex bestimmen.

Hierzu vielleicht mal nen Link: Wikipedia Thema Suchmaschinen

Mit der Browsersuche kann man allerdings trotzdem was machen, das wird hier jetzt zwar total verkorkst und alle anderen sollten jetzt die augen schliessen um hiervon keinen Schock zu bekommen :P

Du könntest den Text aller PDF`Dokumente manuell rauskopieren und den Text in ein HTML Dokument kopieren, die Überschrift des Textes der jeweiligen Seite dann als Link zum Dokument selbst. Nun kann jeder der diese Seite öffnet in der sich mehrere Megabyte Text befinden praktisch alle Dokumente durchsuchen, nach einem Wort. Das ist naütlich so ziemlich das krankeste was ich mir vorstellen könnte, weil es auch keineswegs Sinnvoll ist. Die Dokumente werden immer von oben anch unten durchsucht und die Wörter tauchen wahrscheinlich haufenweise auf und am Ende bringts doch irgendwie recht wenig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du könntest den Text aller PDF`Dokumente manuell rauskopieren und den Text in ein HTML Dokument kopieren, die Überschrift des Textes der jeweiligen Seite dann als Link zum Dokument selbst. Nun kann jeder der diese Seite öffnet in der sich mehrere Megabyte Text befinden praktisch alle Dokumente durchsuchen, nach einem Wort. Das ist naütlich so ziemlich das krankeste was ich mir vorstellen könnte, weil es auch keineswegs Sinnvoll ist. Die Dokumente werden immer von oben anch unten durchsucht und die Wörter tauchen wahrscheinlich haufenweise auf und am Ende bringts doch irgendwie recht wenig.
Also, vom Ansatz her tatsächlich gar nicht soo absurd wie man denken könnte. Also stellen wir das Grundkonzept der Suche mal so um, dass nicht in HTML-Seiten, sondern vernünftig in einer Datenbank (SELECT ... FROM suche WHERE worte LIKE "%$suchbegriff%"). Dann brauchts noch ein Indexerstellungsskript und einen cronjob für dieses (oder wenn die Seiten nicht stündlich geändert werden, kann das auch der Verantwortliche manuell anschmeißen, oder man integriert den Aufruf in das eigene CMS oder oder oder...).

Die eigentliche Arbeit kommt nun: Das Indexprogramm greift sich nun eine jede PDF-Datei und liest den Text dieses Dokuments per gs ein. Wie das genau geht, mal ins gs-Manual schauen, hilfsweise mal nach ps2ascii googeln oder hier schauen. In die Datenbanktabelle wird nun Name und Pfad des PDFs zusammen mit dem Inhalt abgelegt. Richtig rund wird die Sache übrigens, wenn man nicht nur PDF, sondern ggf. gleich die Seiten des drumherumliegenden Intranets oder gar Webauftritts mit einliest und auf genau gleiche Weise ablegt.

Die Suchfunktion pickt sich nun also einfach einen SELECT mit genau dem genannten Suchbegriff und spuckt Links auf sämtliche passenden Seiten (PDFs) aus.

Ungefähr so in der Art haben wir kürzlich was für einen Kunden montiert... ca. 3000 HTML-Seiten plus weit über 1000 (größtenteils aber nur einseitige) PDFs und das Ganze geht auf einer hardwaretechnisch nicht soo schwachen LAMPe wirklich ratzfatz ab.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Sprache wäre nicht das Problem. (Kann Javascript und n bissle PHP), aber der Aufwand ist denke ich bei den vorgeschlagenen Möglichkeiten zu hoch.

Die Lösung mit den vielen HTML Pages war auch mein erster Einfall, aber das ist zu Ressourcen fressend. Ich denke ich werde mir eine andere Lösung überlegen müssen.

Danke auf jeden Fall für eure Beiträge. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Sprache wäre nicht das Problem. (Kann Javascript und n bissle PHP), aber der Aufwand ist denke ich bei den vorgeschlagenen Möglichkeiten zu hoch.

Die Lösung mit den vielen HTML Pages war auch mein erster Einfall, aber das ist zu Ressourcen fressend. Ich denke ich werde mir eine andere Lösung überlegen müssen.

Danke auf jeden Fall für eure Beiträge. ;)

Naja, angesichts der Anzahl der zu durchsuchenden Dokumente würd ich aus meiner Erfahrung heraus sagen, dass Du mit genannter Lösung gar nicht soo viel Aufwand haben wirst. Verzeichnis (ggf. rekursiv) einlesen, für jedes PDF ein pdftotext, das dabei entstehende .txt mit einem geeigneten Insert in die DB schieben ist zB in Perl in weniger als 100 Codezeilen unterzubringen - und in PHP dürfte es in gleicher Größenordnung liegen. Sonderlich anspruchsvoll ist die Aufgabe auch nicht, also ich würde es als gute Übung empfehlen, um auch mehr als nur "n bissle" PHP draufzukriegen :) Würd ich für mich (bin da aber auch routiniert drin) ca. 2 Stunden Arbeit ansetzen.

Das zweite Prg., welches die Suche anschmeißt, dürfte in PHP sogar wesentlich einfacher als in Perl sein...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Problem dabei ist, dass ich keine DB hinterlegen kann. Und ohne DB ist das glaube ich zu aufwendig. Oder hättest du in der Hinsicht noch einen Vorschlag?
Mal abgesehen davon, dass ich das für reichlich merkwürdig halte, wer ein Intranet mit u.a. 1000 PDfs betreibt, sollte wohl auch Freiraum für einen MySQL oder so haben... ich hab meine ersten Versuche mit Perl mittels CSV-Dateien gelöst, und bei relativ kleinen Datenbeständen ging das von der Performance her sogar. Hier auf der Arbeit halten wir das so, dass für kleine Datenmengen (also im Regelfall max. 20 Datensätze und vielleicht bis zu fünf Felder) mit Textdateien agiert wird, was dabei zum Teil sogar performanter als per Datenbank ist. Dafür haben wir sogar eine eigene Klasse implementiert, die die Zugriffe auf die Daten steuern. Wesentlich aufwendiger wirds sicher nicht, wenn es (was ich mal vermute) solche Klassen auf schon fertig zum Runterladen gibt, z.B. mal hier suchen gehen;)

Allerdings fürchte ich, für Deine Belange könnte das mit Textdatei schon etwas kritisch werden. Also wenn Dein Arbeitgeber eine sinnvolle Lösung will, mach ihm mal klar, dass eine Datenbank ziemlich unverzichtbar sein dürfte. Wesentliche Anforderungen (Kosten) bestehen eigentlich nicht, wenn schon ein Intranet vorhanden ist, und der Aufwand sowas zu installieren sollte für einen angehenden FISI wohl erlernbar sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielleicht um die den Schrecken zu nehmen, eine MySQL Datenbank lässt sich ganz einfach mittels installier einrichten :P einfach mal www.mysql.org gehen, die aktuellste Distribution runterladen und auf einem Rechner installieren.

Da ist nichts besonderes bei, wenn du die DB nicht selbst konfigurieren möchtest, empfehle ich dir XAMP http://www.apachefriends.org/de/

Dort gibt es eine Installation für Apache, Mysql und php alles in einem installieren und dann kannst du theoretisch gleich loslegen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...