Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi zusammen,

mich würde mal interessieren, wie man schnelle Suchalgorithmen in Dateien mit PHP bauen kann. Also eine Suche, wo man z.B. eine String eingibt und dann ein bestimmter Ordner alle Dateien nach diesem String durchsucht.

Wenn ich mir nun mit file() o.ä. jede Datei schnappe und jede Zeile nach dem String durchsuche würde das bei 1000 Dateien einiges an Rechenzeit schlucken. Darum frage ich mich, was speziell in PHP die effizienteste Suche ist... womit habt ihr bisher die besten (= schnellsten) Erfahrungen?!

Schreibt mir einfach mal eure bisherigen Erlebnisse.

Danke!

Geschrieben

welches dateisystem auf welcher architektur?

falls es windows mit ntfs ist, ist der indexdienst dein freund.

damit ist eine suche mittels sql-ähnlicher syntax möglich:

SELECT * FROM SCOPE(‘ SHALLOW TRAVERSAL OF“c:\windows†‘,‘ DEEP TRAVERSAL OF “c:\windows\system32â€,“c:\windows\system†‘)WHERE FILENAME LIKE ‘WIN%’

falls es linux mit z.b. ext2/3 ist, tuts ein einzeiler mit "find" auch, den du in eine datei umleitest.

s'Amstel

Geschrieben

theoretisch hast du da ein großes Problem ^^

denn ab ca. 4000 Schleifendurchläufen in einem Verzeichnis sagt PHP "Ende" und bricht ab.

..k.A. könnte eine Servereinstellung sein.

Am besten: Alle Daten die relevant sind in eine DB auslagern. Oder ein Maximum an Dateien pro verzeichnis.

Geschrieben

Entweder diese Lösung...

Am besten: Alle Daten die relevant sind in eine DB auslagern. Oder ein Maximum an Dateien pro verzeichnis.

...oder aber auf jeden Fall eine OS-Lösung verwenden... (siehe 1. Antwort)

Meiner Meinung nach kannst Du das mit PHP so nicht performant abbilden.

Gruß,

Markus

Geschrieben

Hallo,

also ich benutze für sowas eine Volltextsuchmaschine. Der Index wird in meinem Fall einmal pro Nacht erzeugt (cronjob) Ich nutze Falle Swish-e (www.swish-e.org). Ist OpenSource, läuft unter Win und Linux, sehr schnell und mächtig.

Prinzipiell gehen aber auch andere (Namazu, Harvest, phpdig...), wenn du nur unter Windows arbeitest ist der MS Index Server eine gute wahl, der indexiert laufend.

Timo

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...