Engineering

Automatisierung durch Search Analytics mit Elastic App Search

Die Analyse des Suchverhaltens steht zurecht hoch im Kurs, denn sie gibt Aufschluss über die Absichten hinter einer Suchanfrage und lässt tief in den Denkprozess des Suchenden blicken. In diesem Artikel wird erläutert, wie Sie diese wertvollen analytischen Einblicke gewinnen und dynamisch anwenden können, um Anwendungsverbesserungen zu automatisieren.

Don’t Worry, Be ’App-y

Elastic App Search ist eine Sammlung von Tools für das Erstellen erstklassiger Suchfunktionen, bei der im Hintergrund der Elastic Stack seinen Dienst tut. Mit der App Search-Analytics-API können Sie Daten in Zusammenhang mit Suche-Interaktionen für Ihre Programmierzwecke nutzen. Die API hilft Ihnen abzuleiten, wonach gesucht wird und auf welche Ergebnisse die Suchenden klicken.

Nehmen wir als Beispiel eine E-Commerce-Anwendung, mit der Schuhe verkauft werden sollen. Der Nutzer kann sich die promoteten Artikel auf der Hauptseite ansehen, durch die Artikelkategorien navigieren oder die Suche nutzen, um ein passendes Schuhmodell zu finden. Je mehr er sucht, desto mehr Daten fallen an.

Ein einfacher E-Commerce-Shop für Schuhe.

Top-Suchanfragen nach Anfrage

Mithilfe des API-Endpunkts analytics lassen sich die Top-3-Suchanfragen ermitteln:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "page": {
    "size": 3
  }
}'

Die gewonnenen Informationen sind sehr aussagekräftig, sodass klar wird, was für Schuhmodelle besonders gefragt sind:

{
  "results": [
    {
      "term": "black high tops",
      "clicks": 49,
      "queries": 431
    },
    {
      "term": "running shoes",
      "clicks": 31,
      "queries": 509
    },
    {
      "term": "skate shoes",
      "clicks": 14,
      "queries": 100
    }
  ],
  "meta": {
    "page": {
      "size": 3,
      "current": 1
    }
  }
}

Top-Dokumente nach Klick

Wir bieten noch einen anderen Analysemodus, mit dem genau ermittelt werden kann, welche Dokumente nach einer Suchanfrage einen Klick generiert haben.

Ein Dokument ist ein Objekt – ob es sich um ein Schuhmodell, eine E-Commerce-Ware, einen geschriebenen Artikel oder eine Figur in einem Spiel handelt. Bei einer professionellen Suche werden Ihre Objekte in eine Suchmaschine indexiert. So eine Suchmaschine bietet auch App Search.

Beim Indexieren wird aus dem Objekt ein Dokument, das entsprechend den Anforderungen des Suchmaschinenschemas formatiert ist. Wenn der Suchende dann eine Suche durchführt, gibt Ihre Anwendung als Ergebnis Dokumente zurück.

Wir können dann feststellen, welche dieser Dokumente die Nutzer zum Klicken verleiten:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "page": {
    "size": 3
  }
}'

Die zurückgegebenen Dokumente werden anhand der ID (document_id) identifiziert und nach der Zahl der Klicks geordnet:

{
  "results": [
    {
      "document_id": "4909",
      "clicks": 499
    },
    {
      "document_id": "1633",
      "clicks": 321
    },
    {
      "document_id": "9729",
      "clicks": 200
    }
  ],
  "meta": {
    "page": {
      "size": 3,
      "current": 1
    }
  }
}

Diese Analytics-Anfrage nach spezifischen Dokumenten werden wir nutzen, um innerhalb unserer Anwendung den Inhalt dynamisch zu optimieren. Unsere Herangehensweise könnte Ihnen durchaus Anlass geben, Ihre Sicht auf die Suche in Ihren eigenen Anwendungen zu überdenken.

Mehr als nur das Suchfeld

Suche ist für viele Leute oft nicht viel mehr als das Suchfeld, in das sie ihre Suchanfragen eingeben. Das ist ja auch nicht unbegründet, denn schließlich sind wir überall von Suchfeldern umgeben. Aber es gibt eine Reihe von API-Endpunkten, die zur Unterstützung der Suche entwickelt wurden, deren Nutzung es uns erlaubt, aus den rechteckigen Grenzen des Suchfelds auszubrechen.

Die Suche an sich erfolgt stets nach dem immer gleichen, sich zyklisch wiederholenden Muster:

1: Eine Person stellt eine Suchanfrage. 2: Die Anfrage und die zugehörigen Klickdaten werden mittels Analytics verfolgt. 3: Die Daten werden analysiert und das Relevanzmodell wird mit Gewichtungen und Boosting, Kuratierung und Synonymen justiert.

Dieses Muster ist zum Beispiel bei unserem E-Commerce-Anwendungsbeispiel von oben anzutreffen.

Wir werden jetzt aber einen neuen Schritt hinzufügen …

4: Die High-Value-Platzierung promoteter Dokumente wird automatisiert.

Was bringt das? Stellen Sie sich vor, dass die Nachfrage für ein Schuhmodell in Ihrem E-Commerce-Shop plötzlich durch die Decke geht. Auf einmal versucht jeder, ein Paar dieser roten High-Top-Sneaker mit Lichteffekt zu erhaschen, die bei Ihnen intern als Dokument "id": "9797" geführt und dem Nutzer als „Red Light-up High-top Sneakers“ angezeigt werden.

Die Analytics-API gibt unsere Top-3-Dokumente zurück – und ganz oben steht 9797:

{
  "results": [
    {
      "id": "9797",
      "clicks": 982
    },
    {
      "id": "1633",
      "clicks": 23
    },
    {
      "id": "4909",
      "clicks": 11
    }
  ],
  "meta": {
    "page": {
      "size": 3,
      "current": 1
    }
  }
}

Da „Red Light-up High-top Sneakers“ zu den bisher am wenigsten nachgefragten Schuhmodellen gehört, wird dieses Modell nicht prominent auf der Haupt-Landing-Page präsentiert. Glücklicherweise kann es aber über die Suche gefunden werden. Wenn es die Suche nicht gäbe, müssten die Nutzer zur entsprechenden Kategorie gehen und das Modell dort finden. Da aber der alte Spruch Zeit ist Geld nie so wahr war wie heute, müssen wir es den Nutzern noch leichter machen.

Mithilfe des API-Endpunkts documents können wir spezifische Dokumente abfragen:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/documents' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \
-d '["9729"]'

Diese Abfrage gibt uns „Red Light-up High-top Sneakers“ zurück, oder besser gesagt das JSON-Objekt, das „Red Light-up High-top Sneakers“ repräsentiert.

Unsere Hauptseite funktioniert, aus funktioneller Sicht, wie folgt:

Unsere Shop-Landing-Page hat ein hervorgehobenes Fenster für dynamisch zugewiesene Produkte.

Die Präsentation der „Red Light-up High-top Sneakers“ im blauen Kasten wurde über eine Funktion aufgerufen. Die Funktion hat die Aufgabe, das beliebteste Dokument nach Klicks anzuzeigen. Auf diese Weise ist die Haupt-Landing-Page jederzeit auf alles vorbereitet.

Die Suchleiste ist der Treibstoff, der Katalysator, für eine dynamisch aktualisierte und immer relevante Landing-Page. Für die Nutzer hat dies den Effekt, dass sie den Eindruck gewinnen, dass der Shop magischerweise immer genau das präsentiert, wonach sie eigentlich suchen wollten.

App Search bietet Clients für JavaScript, Node.js, Java, Ruby und Python. Erstellen Sie Objekte, in denen Sie Ihre beliebten Dokumente speichern können, und speisen Sie diese Objekte dann in Abfragen ein, die die Grundlage für die Entwicklung Ihrer Hauptansichten bilden. Damit geben Sie Ihrer Qualitätssuche eine zweite Dimension.

Tags als zusätzliche Parameter

Zum Schluss sei noch auf eine weitere wichtige Analytics-Funktion hingewiesen, die bei der Automatisierung gute Dienste leisten kann. Jede Suchanfrage kann als zusätzlichen Parameter ein „Tag“ erhalten:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer search-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "query": "dancing shoes",
  "analytics": {
    "tags": [
      "mobile",
    ]
  }
}'

Das Tag kann bei Analytics-Abfragen als Filter dienen, wie hier gezeigt:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "filters": { "tag": "mobile" }
}'

Die Top-Dokumente werden in der Reihenfolge der Klicks präsentiert, gefiltert durch ein Tag, in unserem Fall durch das Tag „mobile“.

Es ist möglicherweise keine schlechte Idee, Tags in Abhängigkeit davon dynamisch zuzuweisen, wie der Nutzer zu Ihrer Website gelangt. Erfolgt die Suche von einem Mobilgerät aus? Wenn ja, versehen Sie diese Abfragen mit dem Tag „mobile“. Vielleicht suchen Mobilgerätenutzer ja oft nach anderen Schuhen. Wenn Sie das wissen, können Sie eine Funktion erstellen, die dafür sorgt, dass Nutzer von Mobilgeräten auf der Landing-Page andere Inhalte präsentiert bekommen als Desktop-PC-Nutzer.

Zusammenfassung

Search Analytics kann fundamentale Einblicke in Daten ermöglichen. Sie können diese Daten nutzen, um dafür zu sorgen, dass Nutzer schneller das Gesuchte finden, und entsprechende Automatisierungen vorzunehmen. Je schneller die Nutzer finden, wonach sie suchen, desto größer ist die Wahrscheinlichkeit, dass Ihr Ziel Realität wird: anzeigen und verkaufen bzw. Nutzer zur Interaktion bewegen.

Probieren Sie App Search noch heute mit einem kostenlosen 14-tägigen Test unserer gehosteten Version aus oder laden Sie die Beta der selbstverwalteten Version herunter. Alle neuen Testversionen enthalten einen Beispieldatensatz, damit Sie experimentieren können, ohne Ihre eigenen Daten verwenden zu müssen.