Suche durch alle Dateien

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suche durch alle Dateien

    Hallo,

    für ein kleines Projekt auf der Arbeit bräuchte ich mal ein paar Tips von euch.
    Folgende Gegebenheiten. Als "Firmenlexikon" habe ich eine kleine Seite gestartet. In der Navigation kann man sich die gewünschten Inhalte aussuchen, die dann auf ein pdf-File verweisen, das dann zur Ansicht in einem iframe geladen wird. Neben den nötigen Feldern für den Dateiaufruf und dem gespeicherten Link zur Datei habe ich noch ein Feld Suchworte. Hier kann ich Suchworte definieren, auf die die Suche reagieren soll. All das funktioniert auch schon soweit zur vollsten Zufriedenheit. Nun kommt das eigentliche Problem.

    Wie kann ich mit meiner Suchfunktion nicht nur die von mir definierten Suchworte auswerten, sondern auch innerhalb der Dateien nach den eingegebenen Suchwörtern suchen. Bei den Dateien handelt es sich ausschliesslich um pdf's, die aber auch mal 30MB oder größer sein können.

    Meiner Vorstellung nach, müsste ich bei einer Suche dann jede Datei laden, durchsuchen, evtl. vorhandene Treffer speichern und dann mit der nächsten Datei weitermachen. Richtig !?!?

    Wie würdet ihr das machen ?


    Danke für eure Tips
    Gruß

    Michael

  • #2
    Hallo,

    wenn du bei jeder Suche alle PDFs decodieren und durchsuchen willst, dauert das geschätzte 20 Minuten. Ich würde erstmal alle vorhandenen PDFs indizieren und wenn ein neues dazukommt oder sich ein bestehendes geändert hat, dieses neu indizieren. Die dabei gefundenen Stichwörter (alles außer Stoppwörtern) würde ich in eine DB packen und bei der eigentlichen Suche nur die DB abgrasen. Also praktisch genauso wie es eine Suchmaschine machen würde.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Danke für die Antwort.

      Das bringt mich aber zu der Frage, wie mache ich das mit dem inizieren ???
      Stelle ich mir so vor, dass einmal die Suchwörter zusammengesellt werden und das Ergebnis dessen dann in der Datenbank mein jetztiges Suchwort ersetzt.

      Richtig ?!?!
      Gruß

      Michael

      Kommentar


      • #4
        So wie du das erklärst, versteh ich kein Wort. Was ersetzt was in der Datenbank? Was genau verstehst du nicht am Indizieren?
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Apache Lucene
          Apache Tika

          Kommentar


          • #6
            Momentan habe ich in meiner Datenbank eine Spalte Suchworte. In dieser habe ich für jeden Link zu einer Datei entsprechende Suchwörter abgelegt. Hiermit kann ich nach dem Dateinamen filtern. Funktioniert auch.

            Die Frage hier zielt darauf, wie ich auch im INHALT der Dateien suchen kann.
            Dazu müssen dieDateien mit dem Inhalt indiziert sein. Soweit habe ich das verstanden. Nur wie indiziere ich die Dateien???
            Was wird bei dem indizieren gemacht??? Ich nehme an, Suchwörter für die jeweilige Datei erstellt/angegeben, wie auch immer. Diese müssen dann auch in der Datenbank gespeichert werden.

            Gibt irgenwo eine Anleitung (möglichst in deutsch) dazu ?
            Gruß

            Michael

            Kommentar


            • #7
              Ich hab die beiden Links nicht aus Spaß gepostet.

              Kommentar


              • #8
                Zitat von fritzje610 Beitrag anzeigen
                Die Frage hier zielt darauf, wie ich auch im INHALT der Dateien suchen kann.
                Dazu müssen dieDateien mit dem Inhalt indiziert sein. Soweit habe ich das verstanden. Nur wie indiziere ich die Dateien???
                Du sammelst in jeder Datei alle Wörter ein, nach denen man später suchen können soll. Für jedes dieser Wörter erstellst du eine "Liste", die alle Dateien, die das Wort enthalten, beherbergt. Diese Datenstruktur nennt man "inverted index". Einfache Beispiel-Source-Codes gibt es dafür jede Menge, aber PHP ist nicht dabei: Inverted index - Rosetta Code

                Was wird bei dem indizieren gemacht??? Ich nehme an, Suchwörter für die jeweilige Datei erstellt/angegeben, wie auch immer. Diese müssen dann auch in der Datenbank gespeichert werden.
                Schau in den Wikipedia-Artikel zum Search-Engine-Indexing ab dem Abschnitt "Inverted Indices". Da steht drin, wie das abläuft und was noch so alles zu beachten ist (Groß-Klein-Schreibung, Stemming, usw.).

                Irgendwann wirst du dann sicher zu der Erkenntnis kommen, dass man diese Arbeit doch besser einer "fertigen Software" überlässt ...

                Gibt irgenwo eine Anleitung (möglichst in deutsch) dazu ?
                Wenn du ernsthaft das Ganze verstehen lernen möchtest, dann verbessere lieber dein Englisch.
                Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                Kommentar


                • #9
                  Hhmmm, ohne da jetzt lange die genannten Artikel zu lesen drängt sich mir immer mehr der Eindruck auf, dass es sinniger ist, das Suchen fertiger Software zu überlassen und diese in das Projekt zu integrieren.

                  Was könnt ihr da empfehlen ???
                  (Mal von den zwei bereits genannten abgesehen)

                  Danke ! ! ! !
                  Gruß

                  Michael

                  Kommentar


                  • #10
                    Zitat von fritzje610 Beitrag anzeigen
                    Hhmmm, ohne da jetzt lange die genannten Artikel zu lesen drängt sich mir immer mehr der Eindruck auf, dass es sinniger ist, das Suchen fertiger Software zu überlassen und diese in das Projekt zu integrieren.
                    Ja, das war genau das, was dir mein geschätzter Vorposter zu sagen versucht hat.

                    Was könnt ihr da empfehlen ???
                    Empfehlen wäre übertrieben, aber anschauenswert ist
                    Managing Gigabytes for Java

                    (Mal von den zwei bereits genannten abgesehen)
                    Was gefällt dir an denen nicht?
                    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                    Kommentar

                    Lädt...
                    X