PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Brauche bitte Tips zum Thema Suchmachine (https://www.php-resource.de/forum/php-developer-forum/5560-brauche-bitte-tips-zum-thema-suchmachine.html)

hOk 13-03-2002 01:37

Hi Leute,
ich möchte eine Suchmachine für eine Webseite schreiben.
--> ohne boolsche Algebra, einfacher Zeichenkettenvergleich.

...hatte hier im Forum auch schon ne Super Hilfe bekommen.

Doch ein paar Fragen zur Performance und zum Aufbau einer
professionellen Suche hätte ich noch.

Bisher ist mein Plan:
nach der Eingabe des Suchstrings werden alle Seiten
eingelesen html_gestrippt und getolowercased um dann
mit strstr Suchwort und Inhalt zu vergleichen.

Doch wie schaut es mit der Performance aus?
(ca. 100 sollen eingelesen und durchsucht werden)

Wäre da eine Indezierung besser?

Und wenn ja was wäre da ein Ansatz den ich verfolgen könnte,
eine Datenbank steht dafür leider nicht zur Verfügung.

Ich hab leider keine wirklich gute Idee nur einen
Ansatz mit haken, für die Indezierung:

Die gesammte Seite wird nach jeder Aktualisierung
neu geparst.
- Dabei wird jedes Wort als Schlüssel in einem Array
gespeichert.
- Wenn nun ein längeres Wort auftaucht dann ersetzt
es das kürzere ($index[auto] wird von $index[autobahn]
ersetzt

>>> Das Problem ist dann das ich die Schlüssel nicht mehr
mit Regex ansprechen kann und somit: "auto" nicht mehr
"autobahn" findet.

Ich weiss nicht mehr weiter und habe irgendwie das Gefühl
auf dem Holzweg zu sein.

Über ein paar Tips bzw. Ansätze würde ich mich sehr freuen,
nette Grüße, hOk

Titus 13-03-2002 21:43

Also, ein Skript zur "Neuindizierung" hast du ja anscheinend. Wenn nicht: Bau dir eins, das zu jeder zu durchsuchenden Datei 'dateiname.ext' eine Datei 'dateiname.ext.stripped' anlegt, in der du strtolower(striptags(Text)) ablegst.
Später durchsuchst du dann nur noch die .stripped-Datei

Es ist sinnvoll, das Datum der idx-Datei mit dem des Originals zu vergleichen, damit nur aktualisierte Dateien neu indiziert werden.
----

Da zu erwarten ist, dass einige Suchbegriffe häufiger vorkommen, kannst du zu den häufigsten die Ergenisse gleich in einer Indexdatei 'index.txt' speichern. Da könntest du für jeden Begriff eine Zeile reservieren; die könnte z.B. so aussehen:

"Suchbegriff in Anführungszeichen wg. eventueller Leerzeichen" (Anzahl Aufrufe) (Datum letzte Suche) Dateiname_1 Dateiname_2 ... Dateiname_n

Anzahl und Datum mit rein, um seltener eingegebene Begriffe zu erkennen, und zB bei der Neuindizierung aus der Datei zu entfernen).
Bei der Neu-Indizierung muss natürlich diese Datei auch aktualisiert werden.

hOk 14-03-2002 19:01

Hey vielen Dank, und super Ideen, so
werde ich das machen....:-)

viele nette Grüße, hOk


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:30 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG