Eigene Freitextsuche - zu kompliziert?
Jean
- sonstiges
0 Frank aus Ulm0 Jean0 Frank aus Ulm0 Jean
0 Stefan Bach0 Christian Seiler
0 Reiner0 norbert =:-)- php
Hallo Zusammen,
bisher war ich immer sehr beeindruckt wie schnell man
mir hier helfen konnte, doch möglicherweise sind meine
heutigen Fragen etwas kompliziert.
Ich hoffe es kennt sich jemand so gut aus, daß er mir
vielleicht weiterhelfen kann:
Ich hätte gerne eine eigene Freitextsuche mit folgenden
Fähigkeiten auf meiner Webseite:
Das ganze soll dann so aussehen, daß ich eine HTML-Seite
habe, auf der in mehreren Zeilen jeweils mit gleichen
Angaben Produkte beschrieben werden. Am Ende jeder
Zeile gibt es den Punkt "Details", der einen Link zu
einem PDF-Dokument bietet.
Beispiel:
Produkt: Hersteller: Preis: Details:
Handy Superhandy GmbH 500,- EUR PDF-Dokument
Oberschale Superhandy GmbH 10,- EUR PDF-Dokument
Nun möchte ich es mit einer Freitextsuche ermöglichen,
daß eben diese Liste als auch die zugehörigen PDF-
Dokumente durchsucht werden.
Wird ein Treffer erzielt (in dem PDF und/oder der
Liste), dann soll der jeweilige Eintrag aus der Liste
angezeigt werden.
Gibt es sowas/Ist sowas möglich, oder verlange ich zu
viel?
Gibt es vielleicht sogar die Möglichkeit ein
vorgefertigtes Script auch ohne große Programmier-
kenntnisse seinen Bedürfnissen anzupassen, oder sollte
man in dem Fall mit einem externen Script eines
kostenpflichtigen Anbieters arbeiten?
Fragen über Fragen... Ich hoffe ich kann mich
überhaupt für kompetente Antworten revanchieren :-).
Jean
Hi, hallo
noch nie in _live_ gesehen, was du haben möchtest ..
aber wie wäre es mit selbst programmieren?
- Durchsuchung von HTML-Seiten und PDF-Dokumenten
HTML durchsuchen, kein großes Problem,
PDF Dokumente, ohne entsprechende serverseitige Komponente nicht möglich, PDF ist ein proprietäres Format von ADOBE ... es gibt aber 3rd Party Komponenten, aber für Geld
- Individuelle Ausgabeseite für die Ergebnisse
was ist "individudel" ?
- keine Werbeeinblendungen
ich dachte es geht um eine "Freitext"-Suche ... oder suchst du einen Dienst auf einem fremden Server?
- serverseitig
aha, wie sollte es clientseitig funktionieren? da müßte man ja vorher alle PDF downloaden und auch wieder den Acrobat Reader bzw. vergleichbare Komponente haben
- kostenlos oder möglichst günstig
wie gesagt, noch nie in freier Wildbahn gefunden, wenn'ses doch gibt, dann steckt schon einiger Entwicklungsaufwand drin -> kostet sicher nicht minder Geld
Das ganze soll dann so aussehen, daß ich eine HTML-Seite
habe, auf der in mehreren Zeilen jeweils mit gleichen
Angaben Produkte beschrieben werden. Am Ende jeder
Zeile gibt es den Punkt "Details", der einen Link zu
einem PDF-Dokument bietet.
HTML ist ein Graus. Inhalt und Layout sind dort miteinander vermischt ... versuch doch mal per Freitextsuche in irgendeiner beliebigen HTML Resource ein bestimmtes Wort zu finden und dann festzustellen, was steht in der selben Zeile wie das Wort? Und gehört das, was layouttechnisch in der selben Zeile steht auch sinn-mäßig zu deinem gefundenen Wort ... und dann versuch das mal zu automatisieren.
HTML hat keine Datenstruktur, ist dadurch auch nicht vernünftig weiterverarbeitbar.
PDF hat noch den Nachteil, daß du da nicht einfach fröhlich in den Quelltext schauen kannst, weil du da nur Hieroglyphen siehst -> proprietäres Format.
Tschau, tschüß,
Frank
Hi,
aber wie wäre es mit selbst programmieren?
Kann ich leider nicht.
HTML durchsuchen, kein großes Problem,
PDF Dokumente, ohne entsprechende serverseitige Komponente nicht
möglich, PDF ist ein proprietäres Format von ADOBE ... es gibtaber 3rd Party Komponenten, aber für Geld
Kennst du Anbieter. Google durchsucht auf jeden Fall auch
PDF-Dokumente. Aber die bieten leider keinen Suchmechanismus
für die eigene Webseite an...
- keine Werbeeinblendungen
ich dachte es geht um eine "Freitext"-Suche ... oder suchst du
einen Dienst auf einem fremden Server?
Es darf auch über einen fremden Server laufen... Aber das
soll auf meiner Seite nicht erkennbar sein.
aha, wie sollte es clientseitig funktionieren? da müßte man ja
»»vorher alle PDF downloaden und auch wieder den Acrobat Reader bzw.
»»vergleichbare Komponente haben
Ja? Aber eine Suche mit JavaScript wäre doch clientseitig.
Egal, das möchte ich ja sowieso nicht.
HTML ist ein Graus. Inhalt und Layout sind dort miteinander
vermischt ... versuch doch mal per Freitextsuche in irgendeiner
beliebigen HTML Resource ein bestimmtes Wort zu finden und dann
festzustellen, was steht in der selben Zeile wie das Wort? Und
gehört das, was layouttechnisch in der selben Zeile steht auch
sinn-mäßig zu deinem gefundenen Wort ... und dann versuch das mal >> zu automatisieren.
Naja, immerhin sehen die Zeilen immer nahezu gleich aus.
Und Anfang und Ende einer Zeile kann man ja mit Kommentaren
im HTML-Text definieren. Aber abgesehen davon kann ich sowas
komplexes nicht selber programmieren. Deshalb ja auch die
Bitte um Empfehlung eines Anbieters.
Gruß Jean
Hi, hallo
Kennst du Anbieter. Google durchsucht auf jeden Fall auch
PDF-Dokumente. Aber die bieten leider keinen Suchmechanismus
für die eigene Webseite an...
da wäre ich mir nicht 100%ig sicher, ob die wirklich PDF-Dokumente durchsuchen, oder ob die nicht eine Capture/OCR dran haben, was den Text erkennt... an Google hab ich nicht mitgewirkt ... :-( Interessieren täts mich aber auch :-)
und wie ich schon sagte, ich hab sowas in freier Natur noch nie gefunden und ich bin schon ne ganze Weile im Internet
schau dich dochmal auf www.adobe.de um, von denen stammt ja das PDF Format, wenn die einen Mechanismus/eine Komponente bieten, dann aber sicher nicht für wenig geld.
aha, wie sollte es clientseitig funktionieren? da müßte man ja
»»vorher alle PDF downloaden und auch wieder den Acrobat Reader bzw.
»»vergleichbare Komponente haben
Ja? Aber eine Suche mit JavaScript wäre doch clientseitig.
Egal, das möchte ich ja sowieso nicht.
muß nicht unbedingt JS sein, auch ActiveX Dlls oder Java-Applets
Naja, immerhin sehen die Zeilen immer nahezu gleich aus.
aber, was im Browser auf gleicher Höhe steht kann trotzdem herkunftsmäßig vom A** der Welt stammen und layoutmäßig ganz anders positioniert werden. HTML ist einfach nur eine Auszeichnungssprache, die interessiert es nicht, ob zwei sachen die in benachbarten Tabellenzeilen/zellen stehen inhaltlich zusammengehören. HTML kennt nicht den Unterschied zwischen Inhalten, nur zwischen zu interpretierenden Tags und auszugebenden Literalen.
Tschau, tschüß,
Frank
Hi, danke für die Antwort!
aber, was im Browser auf gleicher Höhe steht kann trotzdem
herkunftsmäßig vom A** der Welt stammen und layoutmäßig ganz anders >>positioniert werden. HTML ist einfach nur eine >>Auszeichnungssprache, die interessiert es nicht, ob zwei sachen die >>in benachbarten Tabellenzeilen/zellen stehen inhaltlich >>zusammengehören. HTML kennt nicht den Unterschied zwischen >>Inhalten, nur zwischen zu interpretierenden Tags und auszugebenden >>Literalen.
Ich kenne mich zwar wirklich nicht besonders gut aus,
aber eine Angabe wie <!-- Punkt A --> und <!-- Punkt B -->
müsste doch für eine Programmiersprache wie PHP oder
eine andere schon ausreichen, um eine Textzeile eindeutig
zu identifizieren, um diese dann als Suchergebnis auszugeben?!
Jean
Hallo,
PDF Dokumente, ohne entsprechende serverseitige Komponente nicht möglich, PDF ist ein proprietäres Format von ADOBE ... es gibt aber 3rd Party Komponenten, aber für Geld
PDF ist vielleicht nicht so proprietär wie du denkst. Auf Adobes Homepage findest du Libraries die man verwenden kann um Support für PDF Dokumente in seine eigenen Programme einzubauen.
Und unter http://partners.adobe.com/asn/acrobat/docs.jsp#filefmtspecs findest du die Referenzen zu PDF. Wenn du dir das durchliest, dann kannst du denke ich mal deine eigene Implementierung schreiben. So du (sehr viel) Zeit hast.
Viele Grüße,
Stefan
Hi,
PDF ist vielleicht nicht so proprietär wie du denkst.
So wie es aussieht hat Reiner
http://forum.de.selfhtml.org/?t=45787&m=249882
es in wenigen Minuten geschafft eine PDF-Suche zu
entwickeln :-).
Jean
Hi,
PDF ist vielleicht nicht so proprietär wie du denkst.
So wie es aussieht hat Reiner
http://forum.de.selfhtml.org/?t=45787&m=249882
es in wenigen Minuten geschafft eine PDF-Suche zu
entwickeln :-).
das wäre übertrieben. Ich habe nicht erst angefangen nachdem Du gefragt hattest. Dieses Thema ist nicht ganz uninteressant.
Hallo Frank,
HTML ist ein Graus. Inhalt und Layout sind dort miteinander vermischt ...
Warum propagieren einige von uns denn wohl semantisches Markup? :-)
Viele Grüße,
Christian
Hi,
bisher war ich immer sehr beeindruckt wie schnell man
mir hier helfen konnte, doch möglicherweise sind meine
heutigen Fragen etwas kompliziert.
Ich hoffe es kennt sich jemand so gut aus, daß er mir
vielleicht weiterhelfen kann:Ich hätte gerne eine eigene Freitextsuche mit folgenden
Fähigkeiten auf meiner Webseite:
- Durchsuchung von HTML-Seiten und PDF-Dokumenten
HTML konnte meine kleine Maschine schon länger, PDF geht seit ca. 10 Minuten :-) !
- Individuelle Ausgabeseite für die Ergebnisse
Das kann ich nicht, aber ich überlege gerade, ob ich meine Ergebnisse als XML oder ähnliches darstellen könnte.
- keine Werbeeinblendungen
Habe ich nicht, bis auf die Banner meiner Seite...
- serverseitig
Wie sonst?
- kostenlos oder möglichst günstig
Tja, was verstehst Du unter günstig?
In sowas steckt oft sehr viel Arbeit!
Gruß
Reiner
Hallo Reiner!
HTML konnte meine kleine Maschine schon länger,
PDF geht seit ca. 10 Minuten :-) !
Ich bin beeindruckt. Wie hast du es denn jetzt in
so kurzer Zeit geschafft die PDF-Suche zu integrieren?
Ist das technisch doch nicht so umständlich, wie in
dem Beitrag von Frank beschrieben?
Hast du als Suchseite www.telekom.de? Ich habe nur
durch Zufall ein PDF finden können, als ich das Wort
"und" eingab, denn ich weiss ja nicht welche PDF-
Dokumente du in deiner Suche berücksichtigst.
Wie funktioniert deine Suche überhaupt technisch?
Ist das ein CGI? Oder MySQL? Oder was ganz anderes?
- Individuelle Ausgabeseite für die Ergebnisse
Das kann ich nicht, aber ich überlege gerade, ob ich meine
Ergebnisse als XML oder ähnliches darstellen könnte.
Also, wenn du mir wirklich den Mund wässrig machen
wolltest, müßte dein kleines Programm schon
individuelle Ausgabeseiten unterstützen. Warum ist
das so schwierig? Kann man das nicht einfach in HTML
festlegen, wie bei einer normalen Webseite?
Tja, was verstehst Du unter günstig?
In sowas steckt oft sehr viel Arbeit!
Ich weiß nicht. Wenn du alle meine Probleme in
jeweils 10 Minuten lösen kannst, dann ist es ja doch
nicht soviel Arbeit ;-)!
Aber wenn deine Freitextsuche am Ende tatsächlich
allen meinen Wünschen entspricht, wäre mir das
schon den ein oder anderen Gefallen/Euro wert.
Glaubst du meine Bedingungen sind erfüllbar? Was
könntest du dir für eine Entlohnung vorstellen?
Jean
Hi,
wie gesagt, das hat keine 10 Minuten gedauert. Ich arbeite da in Teilen schon mehrere Monate dran.
Ich nutze keine externe Maschine, das läuft wirklich autark!!!
Ist ein Crawler (Perl) der seine Ergebnisse in eine Datenbank speichert. Das vielleicht besondere (neben der Programmierung) ist ein Algorithmus, nachdem das Crawling funktioniert.
URLs rotieren in mehreren Tabellen und Ihre Links bekommen eine Erhöhung eines Zählers. Dadurch kann ich bei Bedarf die Suchtiefe gezielt steuern.
Gleiche Dateien werden sofort erkannt und in einer Aliastabelle gespeichert. Dies wird mit Prüfsummen mittels MD5 erzielt.
Wie gesagt, weiß ich im Moment noch gar nicht, was ich damit machen will. Für einen Service ist mein Rechner zu lahm (nur DSL), freigeben will ich das aus verschiedenen Gründen nicht so (zunächst). Der Hauptgrund ist, daß der Code noch etwas Kraut und Rüben ist (dennoch funktioniert es gut :-]).
Setz Dich doch mal oben auf die Liste (Link "Diskussions-Liste"). Man kann ja mal diskutieren.
Gruß
Reiner
Ich nochmal:
Um das mystische an der PDF-Indizierung auszuräumen...
Das war nicht besonders schwer!
Ich hatte schon Mechanismen, die Files in Tabellen speichern.
Davon habe ich einen Teil umgeschrieben, der nun PDfs nicht in die normale Filetabelle sondern in die für HTML mit reinschreibt.
Statt dem HTML-Code jage ich das PDF durch eine Funktion PdfTOText (ist bei Linux wohl schon dabei bzw. habe ich irgendwann mal installiert, weiß nicht mehr) und erhalte einen ASCII-Text, den ich für die Volltextsuche nutze.
Gruß
Reiner
Hallo Jean!
Kann Dir als Starthilfe meine eigene Suchmaschine anbieten - der Code ist für alle frei verfügbar. Allerdings wurde die nur schnell für interne Zwecke entwickelt - also noch genug Potential für Erweiterungen (zB PDF).
Funktion:
1.) Durchsucht rekursiv alle Verzeichnisse, die mit der Funktion "find" aufgerufen werden.
2.) Nimmt, falls vorhanden, die Angabe aus dem Meta-Tag "Title" (den es nicht wirklich gibt - der wurde nur für diese Suchmaschine eingegeben - siehe HP)
3.) Markiert das gefundene Wort fett und zeigt eine kurze Vorschauzeile an.
Also nichts besonderes, darum hier der Link - alle Angaben ohne Gewähr ;-)
http://www.chaos-consult.at/demo/finder.txt
Hinweis: Geht auf die Performance, da bei jeder Suche ALLE angegebenen Dateien eingelesen und durchsucht werden - daher wird diese Suchfunktion bei mir nur für interne Zwecke verwendet!
Frohes Schaffen,
mfg
norbert =:-)