Testen Sie Scrivito 30 Tage lang kostenlos
Testen Sie Scrivito 30 Tage lang kostenlos

Über die Wortstammsuche und wie man sie einschaltet

New in 1.22.0

Über die Wortstammsuche und wie man sie einschaltet

Im Zusammenhang mit Suchmaschinen hat die Wortstammsuche (engl. „stemming“) den Zweck, bessere Suchergebnisse für die vom Benutzer eingegebenen Begriffe zu liefern – „besser” im Sinne „treffsicherer“. Doch wie funktioniert sie?

Bei der Wortstammsuche werden die zahlreichen Formen von Wörtern wie Substantiven, Verben, Adjektiven und Adverbien auf ihren Stamm reduziert. Dadurch stimmt ein (ebenfalls reduzierter) Suchbegriff selbst dann mit einem in den Inhalten vorkommenden Begriff überein, wenn beide Begriffe nicht identisch sind, sondern in unterschiedlicher Form vorliegen. Aus Sicht einer Suchmaschine mit Stemming sind „Wert“, „wertvoll“ und „wertig“ dasselbe, wie auch „Gang“, „gehen“ und „ging“. An diesen beiden Beispielen kann man erkennen, dass es bei der Wortstammsuche nicht damit getan ist, Wörter von Präfixen und Suffixen zu befreien, um deren Stamm zu bestimmen. Wenn Sie mehr über die Technologie hinter Stemming erfahren möchten, lohnt es sich, einen Blick darauf zu werfen, was eine Suchmaschine wie beispielsweise Elasticsearch zu bieten hat.

Die Wortstammsuche ist selbstverständlich sprachspezifisch. Damit eine Suchmaschine Stemming richtig anwenden kann, muss sie also die Sprache der zu durchsuchenden Inhalte berücksichtigen.

Die Sprache von Inhalten redaktionell festlegen

Scrivito ermöglicht es Redakteuren, die Sprache eines jeden CMS-Objekts, sei es eine Seite, ein Bild oder eine PDF-Datei, über die entsprechende Eigenschaft einzustellen. Redakteure brauchen jedoch in ihren Arbeitsabläufen diese Einstellung nicht ständig im Blick zu behalten, weil neue Unterseiten ihre Sprache von der übergeordneten Seite erben. Außerdem weist die Bedienschnittstelle beim Verschieben und Kopieren von Seiten mit unterschiedlicher Sprache bei Quelle und Ziel den Benutzer darauf hin und bietet ihm an, die Spracheinstellung anzupassen.

Die Sprache programmgesteuert setzen

Alle CMS-Objekte haben ein Attribut, mit dem sich deren Sprache einstellen lässt: _language. Um in der Browser-Konsole darauf zuzugreifen, ändern Sie dort den Kontext zu scrivito_application und führen Sie dann Folgendes aus:

Wenn es in Ihren Inhalten eine größere Anzahl von Seiten gibt, bei denen keine Sprache gesetzt ist, wäre es sehr aufwendig, sie bei jeder Seite einzeln über die Bedienschnittstelle anzugeben. Lassen Sie uns also den Redakteuren diese Arbeit abnehmen. Wir benötigen dazu lediglich ein Attribut der bestreffenden Seiten, das die Zielsprache eindeutig anzeigt, etwa deren Pfad oder Website-ID, also _path oder _siteId. Auf Basis des Attributwerts können wir dann _language mit Hilfe einer Suche entsprechend setzen. Im folgenden Beispiel finden wir deutschsprachige Seiten über deren Pfadpräfix „/lang/de“ und weisen ihrem _language-Attribut den Wert „de“ zu – nachdem wir eine Arbeitskopie angelegt haben, und wiederum in der Browser-Konsole:

objs = await Scrivito.load(() => 
  Scrivito.Obj.where("_path", "startsWith", "/lang/de").take()
);
objs.forEach(obj => obj.update({_language: "de"}));

Das war es schon! Nachdem dieses kleine Skript ausgeführt und die Arbeitskopie veröffentlicht wurde, wird Stemming bei Suchen im deutschsprachigen Bereich der Website sofort angewendet.