Suchplugin für Joomla 4: kognitive bedeutungsorientierte Suchmaschine trifft CMS

letzte Überarbeitung: 2022-10-06; Arbeitszeit: 10 bis 15 Minuten (je nach Installationsart und Erfahrung)

Eine Anleitung für Joomla 3 finden Sie hier.

Überblick

Wir erklären hier, wie man die kognitive bedeutungsorientierte Suche SEMPRIA-Search als Extension für das CMS Joomla nutzt. Mit zwei Einschränkungen (10 Seiten, 100 Tage) ist das sogar kostenlos möglich. Im Folgenden wird eine aktuelle Installation von Joomla 4 angenommen, z.B. Joomla 4.2.3 vom September 2022.

1. Standardsuche ausschalten

Als Joomla-Administrator schalte man unter System | Manage - Extensions alle 8 Extensionen mit 'Smart Search' im Namen aus.

2. Legacy-Suche installieren

Als Vorbereitung lege man eine Datenbank-Tabelle an:

  • mysql -u root -p
  • use joomla_db;
  • CREATE TABLE IF NOT EXISTS DBPREFIX_core_log_searches( search_term varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', hits int(10) UNSIGNED NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  • commit;
  • exit;

Nun installiere man das folgende Plugin in der Version 4.0.1-dev als Joomla-Administrator unter 'System | Install Extensions | Upload Package file': Legacy-Search

Im Verzeichnis 'administrator/components/com_search' lege man die access.xml-Datei ab und füge vor dem ersten filename-Eintrag in search.xml ein: '<filename>access.xml</filename>'

Im Verzeichnis 'language/de-DE' lege man die deutsche Sprachdatei ab; genauso für das Verzeichnis 'language/en-GB' die englische Sprachdatei.

3. Sempria-Plugin installieren

Laden Sie die folgende zip-Datei herunter: Version 1.1.0 als zip-Datei. Sie enthält die Joomla-Extension SempSearch. Loggen Sie sich nun als Administrator in Ihr Joomla ein, am besten mit der Nutzersprache English, damit Sie die Hinweise unten besser zuordnen können.

Klicken Sie Extensions | Manage | Install | Upload Package File und wählen Sie Ihre zip-Datei aus. Falls die Installation erfolgreich war, erscheint eine grüne Meldung Installation of the plugin was successful.

4. Legacy-Suche anpassen

Klicken Sie System | Manage - Extensions und stellen Sie sicher, dass pkg_search angeschaltet und plg_search_categories, plg_search_contacts, plg_search_content, plg_search_newsfeeds, plg_search_tags ausgeschaltet sind.

5. SEMPRIA-Benutzerkonto anlegen

Um Ihre Suchmaschine zu verwalten, brauchen Sie ein SEMPRIA-Benutzerkonto. Falls Sie noch keines haben, registrieren Sie sich hier unter Angabe der zu durchsuchenden Website, die Ihre CMS-Installation bereitstellt.

6. SEMPRIA-Search aktivieren

Wählen Sie System | Manage - Plugins. Falls das Plugin SempSearch noch nicht aktiv ist, aktivieren Sie es durch Anklicken in der Status-Spalte.

Klicken Sie auf den Namen SempSearch und füllen Sie die ersten 3 Felder (also: SEMPRIA-Search API-URL, SEMPRIA-Search API-PW, SEMPRIA-Search Corpus-ID) mit den Werten, die Sie Ihrem Benutzerkonto entnehmen. Falls die Werte dort noch nicht stehen, warten Sie bitte auf eine Informationsmail von info@sempria.de. Die Defaults für die restlichen Einstellungen sind nur in Spezialfällen zu ändern.

7. Suchseite anlegen

Falls es in Ihrem CMS noch gar keine Suchbox zum Durchsuchen Ihres CMS gibt, sollten Sie nun eine Suchmöglichkeit anlegen. Dazu gibt es zahlreiche Möglichkeiten. Wir beschreiben zuerst ein Suchfeld, dann eine getrennte Suchseite. Man kann eines von beiden oder auch beides umsetzen.

Um ein Suchfeld anzulegen, wähle man Extensions | Modules | New (Button), dann Search. Man editiere Title und Position passend und schließe mit Save (Button) ab.

Eine getrennte Suchseite kann man unter Menus | Main Menu | Add new menu item auswählen und dann Menu item type auf Search form or search results setzen.

8. Legacy-Suche anpassen

Nun ist es fast geschafft. Im folgenden wird angenommen, dass man ein Template namens helix verwendet. Wenn Ihr Template anders heißt, dann ersetzen Sie in den Dateinamen unten helix entsprechend.

In templates/helix/js : ln -s ../../../plugins/search/sempsearch/sempria-suggest.js custom.js

In templates/helix/css : cat ../../../plugins/search/sempsearch/*.css > custom.css

In der Datei 'plugins/system/helix/overrides/com_search/search/default_form.php' stelle man der if-Bedingung in Zeile 73: 'false && ' voran.

In der Datei 'plugins/system/helix/overrides/com_search/search/default_results.php' ändere man in Zeile 39 '$result->text;' zu: '(isset($result->sem_res) ? $result->sem_res : $result->text);' )

Zum Einbinden von interaktiven Suchvorschlägen fügt man in 'plugins/system/helix/overrides/com_search/search/default_form.php in Zeile 22 im class-Wert das input-Elements mit Namen searchword folgendes ein:
inputbox ajax-suggestion url-API-URL/hop/sempria/search-suggestions-html?client=Corpus-ID
Die Werte für API-URL und Corpus-ID finden Sie in Ihrem Benutzerkonto, s. oben in Schritt 4. Für einen fiktiven Kunden abcd mit API-URL https://api.sempria.de:9999/... könnte dies so aussehen:
inputbox ajax-suggestion url-https://api.sempria.de:9999/hop/sempria/search-suggestions-html?client=abcd
Vor Zeile 31 füge man noch ein div-Element für die Suchvorschläge ein:
<div id='search-result-suggestions'>Vorschläge (1. ggf. unten auswählen, 2. ggf. oben anpassen, 3. ENTER-Taste oder Absenden-Knopf)<div id='search-results'></div></div>

Schlussbemerkungen

Bei Fragen zu dieser Anleitung oder Interesse an entsprechenden Anleitungen für andere Content-Management-Systeme o.ä. kontaktieren Sie uns einfach hier. Für Feedback und Verbesserungen zu diesem Text sind wir immer dankbar.