Mailinglisten-Archive |
Hallo Norbert, > Darauf kam ich auch, kurz nach dem die Mail weg war, wie ueblich ;-) Merkwuerdig ist es schon... > Und was mache ich nun mit der Volltext-Recherche ??? > 1. Der komplette Muenz > 2. Das PHP-Manual Im Prinzip ganz einfach (ebenfalls duck) ;-) : Datenbank "MyFTSearch" anlegen. Tabelle "woerter" erstellen Tabelle "fundstellenzeile" erstellen Tabelle "fundstellendatei" erstellen Tabelle "w2f" (m:n-Relation) erstellen Alle Text parsen mit einer Engine (muss nicht mal PHP sein), bei der set_time_limit (0) funktioniert... und die Tabellen mit Worten und Fundstellen fuellen. Datenstruktur: woerter -n:1- w2f -1:n- fundstellenzeile -n:1- fundstellendatei Abfrage: select fundstellenzeile.linenumber, fundstellendatei.filename from woerter where 'wort' like '$suchbegriff%' and woerter.id = w2f.woerter_id and fundstellenzeile.id = w2f.fzeile_id and fundstellenzeile.fdatei_id = fundstellendatei.id; Was fehlt, ist der Textpreview, der mit angezeigt wird. Da es sich um lange Dateien handelt, muessten diese am besten in Kapitel zerlegt werden. Oder es werden alternativ Kapitelpreviews, die wiederum von fundstellenzeile referenziert werden, mit in die DB gepackt. Oder so aehnlich... (und nicht vergessen, mir die fertige Engine zu mailen ;-) ) Stringzerlegung: Spricht was dafuer, beim Parsen gleich die ganze Datei zu lesen? Wenn die in 1k-Bloecken geparst wird, reicht das fuer Wortextraktionen doch aus (oder???). Da ein Index 'eh offline gebuildet wird, ist es auch egal, wenn's mal laenger als 30 Sekunden dauert. Die Suche geht dafuer dann wohl in 0,1 Sekunden. Mit freundlichen Grüßen, Oliver Kummerow email: naklar_(at)_altavista.net
php::bar PHP Wiki - Listenarchive