Hier ist was ich tun möchte:
Ich muss einen Suchmaschinen-Parser erstellen, der die folgenden Operatoren verwendet:
Mit einigen preg_replace, ich bearbeite die Zeichenfolge in ein Array und dann analysierte ich dieses Array, um eine MySQL-Abfrage zu erhalten. Aber ich mag das nicht und es ist sehr instabil!
Ich habe im Internet nach einem Skript gesucht, das das tut und ich hatte kein Glück!
Kann mir bitte jemand helfen, das umzusetzen?
Danke
Ok, das wird eine große Antwort sein.
Ich denke, was Sie brauchen, ist ein Parser-Generator. Eine Software, die Code generiert, um Text nach einer bestimmten Grammatik zu analysieren. Diese Parser haben oft zwei Hauptkomponenten: einen Lexer und einen Parser. Der Lexer identifiziert TOKENS (Wörter), der Parser prüft, ob die Token-Reihenfolge entsprechend Ihrer Grammatik stimmt.
Im Lexer sollten Sie die folgenden Token deklarieren:
%Vor%Die Grammatik sollte wie folgt definiert werden:
%Vor%Diese Grammatik definiert eine Sprache mit allen Funktionen, die Sie benötigen. Abhängig von der verwendeten Software können Sie Funktionen zur Behandlung der einzelnen Regeln definieren. Auf diese Weise können Sie Ihre Textabfrage in eine sql where-Klausel umwandeln.
Ich bin nicht wirklich auf PHP, aber ich suchte im Internet nach einem Parser-Generator und PHP_ParserGenerator erschien.
Beachten Sie, dass diese Abfragen zu einem Problem für ein strukturiertes Speichersystem werden können, solange Ihre Datenbank wächst.
Vielleicht möchten Sie eine Volltext-Suchmaschine ausprobieren, mit der Sie diese und viele andere Funktionen zur Textsuche ausführen können. So funktioniert IndexTank
Zuerst fügen Sie alle Ihre db-Datensätze (oder Dokumente) zu IndexTank hinzu (oder "indexieren" im Suchdialekt).
%Vor%Danach können Sie im Index nach allen gewünschten Operatoren suchen
%Vor%Ich hoffe, ich habe Ihre Frage beantwortet.
Versuchen Sie Folgendes: Ссылка
Aus Readme:
Es ist einfach zu installieren und zu verwenden. Werfen Sie auch einen Blick auf Ссылка - die mächtigste Engine, aber nicht für Neulinge.
Tags und Links php search-engine operators text-parsing