Einführung
Bei der Erstellung von Websites – auch kleineren Umfangs – kommt von Kunden immer häufiger die Anforderung eine kleine Suchmaschine zu integrieren, die zu einem oder einigen wenigen Suchbegriffen die relevanten Seiten der Website findet.
Da dies eine Standardaufgabe ist, hofft man als Entwickler, im Internet nicht nur fertige und freie OpenSource Suchmaschinen sondern auch Hinweise darauf zu finden, wie man einen solchen Service evtl. selbst programmiert. Interessanterweise liefert eine Internetrecherche im nichtkommerziellen Bereich gar nicht so viele passende Treffer. Fast verschwindend ist die Anzahl brauchbarer Anleitungen zum Eigenbau mittels PHP. Der oft zu findende Hinweis, man möge doch bitte die Volltextindizierung von MySQL benutzen, nützt einem ohne entsprechendes Hintergrundswissen zunächst auch nicht so viel.
Eine an und für sich gelungene Einführung von Daniel Solin
http://www.onlamp.com/pub/a/php/2002/10/24/simplesearchengine.html?page=1
leidet darunter, dass sich die Ausführungen auf eine Beispielmaschine beschränken, die genau einen Suchbegriff zulässt.
Da wir selbst in einem unserer letzten Aufträge eine Suchmaschine implementieren mussten, möchten wir mit einigen Tipps und Programmhinweisen die Diskussion von Daniel Solin erweitern und ergänzen.
Zielsetzung ist dabei Folgendes:
1. Eine kurze Diskussion einer möglichen Strategie zur Bestimmung der “Relevanz” einer getroffenen Seite. Eine solche Diskussion fehlt im Artikel von Solin; die Relevanz einer getroffenen Seite wird aber immer wichtiger, wenn bei der Suche mehr als ein Suchbegriff verwendet wird.
2. Eine Darstellung des Programmablaufs zur Erstellung der Datenbank.
3. Eine Darstellung des Programmablaufs für den Suchvorgang selbst, wenn genau ein Suchbegriff eingesetzt wird.
4. Erweiterung der Suche auf mehrere Suchbegriffe, wobei die Begriffe in exakter Schreibweise gefunden werden sollen.
5. Erweiterung des Programmablaufs für eine unscharfe Suche.
Wir werden diese Punkte in einzelnen Blog-Artikeln aufgreifen und hoffen, damit dem einen oder anderen Webseiten-Entwickler, der den Einsatz von PHP nicht scheut, eine Hilfestellung zu leisten.