wie kann man mit PHP aus einem String eine Reihe von Wörtern löschen?

3 Antworten

  • wiederholte Nutzung von str[i]replace()
  • wiederholte Nutzung von preg_filter() (o.ä.)
  • Generieren eines Hash mit Tokens zum Abgleich, String in Tokens zerlegen und linear abgleichen.

Bedenke, daß es sowas wie Wortformen gibt und Du eigentlich jede Form bei 1:1 Abgleich benötigst.

Eine Searchengine wäre vermutlich der deutlich einfachere Weg, insbesondere wenn der Indexer filtert und Stemming macht.Allerdings ist die Anfangshürde wohl größer.

Falls Du keine ganze Searchengine willst, dann kann man ggf. auch überlegen auf die einzelnen Komponenten zurückzugreifen und sich zumindest Teilaufgaben damit leichter zu machen.


stealthuser 
Beitragsersteller
 15.11.2024, 01:00

Den Indexer habe ich schon zur Hälfte fertig und den Algorithmus für die Bewertung der Suchergebnisse habe ich schon seit 20 Jahren in der Schublade liegen - damals war es noch eine Suchmaschine in JavaScript.

Das 20 Jahre lange sammeln an Informationen ist übrigens auch der Grund warum jetzt eine Suchmaschine in PHP mit MariaDB notwendig geworden ist.

KarlRanseierIII  15.11.2024, 01:10
@stealthuser

Willst Du die Volltextsuche von MariaDB nutzen? Ich würde zumindest überlegen, ob eine dokumentenorientierte DB vielleicht bequemer wäre.

stealthuser 
Beitragsersteller
 15.11.2024, 01:47
@KarlRanseierIII

Nein keine Volltext-Suche - als ich vor kurzem ein Video-Portal mit Suchfunktion für meine Videosammlung programmiert hatte, ist mir aufgefallen, wie schlecht bzw. undiffernziert die Suchergebnisse waren wenn man eine Volltextsuche über mehrere Spalten macht.

Dafür habe ich inzwischen eine bessere Lösung

Von einer Eigenimplementation würde ich absehen, denn es gibt hierfür bereits passende Tools, die das für dich übernehmen können.

Schau dir Apache Solr an. Das ist eine Lucene-basierte Plattform, über die Suchindizes angelegt und verwaltet werden. Für die Konfiguration eines eigenen Index kannst du zudem Filter einsetzen. Mehrere Filtertypen sind bereits vorimplementiert.

Eine Extension für PHP gibt es ebenso.


stealthuser 
Beitragsersteller
 14.11.2024, 20:55

Ich habe das Solr-Thema mal eben überflogen und bin zu dem Schluss gekommen, das mir Solr eine Nummer zu groß ist und meine Infrastruktur wird für den Betrieb ebenfalls nicht ausreichen.

Der Content ist über mehrere Raspberry PI und ein Synology NAS verteilt - die werden bei einer Volltextsuche in die Knie gehen.