Sie wissen wahrscheinlich bereits, dass Joomla über eine integrierte Suchfunktion verfügt, die modernen Anforderungen gerecht wird – die intelligente Suchkomponente. Aber was ist, wenn Ihre Benutzer etwas mehr benötigen? Was ist, wenn Sie möchten, dass auch Erweiterungen von Drittanbietern durchsuchbar sind? In dieser Artikelserie schauen wir uns an, wie man ein intelligentes Such-Plugin für eine Joomla-Komponente eines Drittanbieters erstellt.
Historisch gesehen gab es im Joomla-Kern zwei Suchkomponenten: nur „Suche“ und „Intelligente Suche“. Eine einfache Suche war in Joomla 1.x enthalten und hat sich seitdem nicht wesentlich geändert. Damit diese Komponente (com_search) nicht nur in den Kernkomponenten suchen konnte, musste ein Plugin geschrieben werden, dessen Kern hauptsächlich darin bestand, der Komponente die erforderliche SQL-Abfrage zu geben und ein Objekt mit einer für die Komponente verständlichen Struktur zu bilden aus den Abfrageergebnissen. Die Suche selbst war im Wesentlichen eine SQL-Abfrage an die Datenbank mit LIKE „%word%“. Es gab auch Fälle, in denen die Sphinx-Suchmaschine in Joomla mit Hilfe eines einfachen Such-Plugins genutzt wurde.
Ab Joomla 2.5 war die Intelligente Suchkomponente, com_finder, im Kern enthalten, der Hauptunterschied zwischen dieser und der einfachen Suche war die Inhaltsindizierung. Die Suche selbst begann, Ergebnisse basierend auf der Relevanz des Inhalts zu liefern. Für den Site-Benutzer wurden Suchparameter angezeigt, mit denen Sie die Ergebnisse mithilfe von Filtern auf der Grundlage verschiedener Parameter einschränken können: Start- und Enddatum der Veröffentlichung, Sprache, Typ (Artikel, Kategorie, Produkt usw.), spezifische Kategorie, Autor. Unter der Haube wird der Text in Token unterteilt, das Gewicht der Token berechnet usw. Indizierungseinstellungen sind in den Komponenteneinstellungen verfügbar.
Ein Beispiel aus dem intelligenten Joomla-Suchhinweis für Website-Besucher:
Wenn Sie dies und das in das Suchformular eingeben, erhalten Sie Ergebnisse, die sowohl „dies“ als auch „das“ enthalten.
Wenn Sie dies und nicht das in das Suchformular eingeben, erhalten Sie Ergebnisse, die „dieses“ und nicht „das“ enthalten.
Wenn Sie dies oder das in das Suchformular eingeben, erhalten Sie Ergebnisse, die entweder „dies“ oder „das“ enthalten.
Wenn Sie „dies und das“ (mit Anführungszeichen) in das Suchformular eingeben, erhalten Sie Ergebnisse, die genau den Ausdruck „dies und das“ enthalten.
Ich möchte noch einmal darauf hinweisen, dass es sich hierbei um die Funktionalität des Joomla-Kerns handelt, nicht um eine Erweiterung eines Drittanbieters und nicht um irgendeinen, normalerweise kostenpflichtigen Dienst eines Drittanbieters.
In der Praxis habe ich die Erfahrung gemacht, dass Seitenbesucher in der Regel nicht alle diese zusätzlichen Filter und Suchparameter nutzen, sondern zur Klärung der Anfrage noch einmal nachfragen. Auf einer regulären Website mit Artikeln sind Suchparameter wahrscheinlich nicht gefragt, aber in einem internen geschlossenen Hilfesystem oder Dokumentationssystem (Joomla bietet Versionierung von Artikeln und Workflows, siehe Details auf docs.joomla.org) wären diese Parameter eher gefragt Nachfrage.
Der Index Ihres Mini-Googles muss regelmäßig aktualisiert werden, da sich auf der Live-Site ständig etwas ändert: Produkte und Artikel werden hinzugefügt, archiviert, gelöscht, Kontakte werden aktualisiert usw. Damit der Benutzer den Überblick behält Um Daten in die Suche einfließen zu lassen, müssen Sie den Inhalt regelmäßig neu indizieren. Die Indexergebnisse werden in der Datenbank gespeichert, weshalb diese an Größe zunimmt. Dies ist für diese Suchimplementierung normal.
Sie können die Indizierung manuell über das Admin-Panel starten
Oder (dies ist die bevorzugte Option) über die Befehlszeile des Joomla CLI-Servers. Gehen Sie dazu in den CLI-Ordner Ihrer Site (weitere Informationen zum Arbeiten mit Joomla CLI finden Sie im Artikel Joomla 4: Eine leistungsstarke CLI-Anwendung).
CLI-Ordner in Joomla.
Führen Sie in diesem Ordner den Befehl aus:
php joomla.php finder:index
Und Joomla indiziert Ihre Inhalte ziemlich schnell.
Indizierung durch intelligente Suche in Joomla 5 über die CLI.
Wir fügen diesen Befehl zur geplanten Ausführung zu CRON hinzu und Website-Besucher werden sich über die aktuellen Suchergebnisse freuen.
0 2 * * * php /path/to/site/public_html/cli/joomla.php finder:index >/dev/null 2>&l
Joomla-Benutzerfelder werden für eine Vielzahl von Arten von Websites verwendet, häufig für Kataloge von Dienstleistungen oder Waren, bei denen keine Online-Zahlung und Berechnung der Lieferung auf der Website erforderlich ist. Damit Joomla nach den Werten dieser Felder suchen kann, müssen Sie für jedes Feld den Parameter „Suchindex“ angeben (Registerkarte „Optionen“ ganz unten):
Sie können sich auch den Artikel „Hinzufügen benutzerdefinierter Felder in den Ergebnissen von Smart Search und JFilters“ ansehen, in dem beschrieben wird, wie Feldwerte in Suchergebnissen mithilfe der Layoutüberschreibung angezeigt werden.
Eine Taxonomie ist eine Möglichkeit, Felddaten in Suchergebnissen anzuzeigen, zum Beispiel „Kategorie: Beliebige Kategorie“, „Autor: Beliebiger Autor“. Die Taxonomie kann verschachtelt werden. Um nach Feldwert zu suchen, wählen Sie die Optionen „Durchsuchbar machen“ oder „Durchsuchbar machen und als Taxonomie hinzufügen“ aus.
Ein Taxonomiebeispiel in der intelligenten Joomla-Suche.
Im nächsten Artikel schauen wir uns am Beispiel von JoomShopping an, wie man ein intelligentes Such-Plugin für eine Joomla-Komponente erstellt. Wir werden auf Nuancen und Details stoßen, die uns behindern könnten, aber am Ende werden wir alle Schwierigkeiten überwinden und ein funktionierendes intelligentes Such-Plugin für Joomla 5 erstellen.
Das obige ist der detaillierte Inhalt vonDie Anatomie der intelligenten Suche in Joomla Art Einführung.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!