4. Oktober 2018 Engineering

Crawlen, Code schreiben, Suchen: Elastic Site Search und Elastic App Search

著者 Kellen Evan

Die Managed Search Services von Elastic unterstützen Sie wirksam und effizient bei Ihrer Arbeit. In diesem Artikel schauen wir uns zwei dieser Services an: Elastic Site Search und Elastic App Search. Beide Services dienen dem gleichen Ziel: Sie bieten Tools zum Erstellen und Feinabstimmen relevanter und nützlicher Sucherlebnisse und lassen sich schnell implementieren. Sie unterscheiden sich jedoch in der Methode zum Erreichen dieses Ziels.

Anhand dieses Artikels können Sie die für Sie geeignete Lösung ermitteln.

Die Herausforderung: Deep Search

Sowohl Elastic Site Search als auch Elastic App Search nutzen Elasticsearch, eine verteilte Open-Source-Suchmaschine, die auf dem Softwarearchitekturstil Representational State Transfer (REST) aufbaut. Die RESTful-Suchmaschine ist unentbehrlich für diese Lösungen. Elasticsearch ist ein bewährtes Tool, das Ihnen hilft, die größten Herausforderungen bei der Suche zu meistern.

Diese Herausforderungen lassen sich in drei wesentliche Aspekte unterteilen:

Aufnahme: Sie verfügen über Daten, die Sie durchsuchbar machen möchten. Bei der Aufnahme wird ein Objekt – eine Webseite,  eine Antwort von einem Backend-API – in ein durchsuchbares Dokument umgewandelt. Dieser Vorgang wird als Indexierung bezeichnet: Daten werden in ein für die Verarbeitung durch eine Suchmaschine optimales Format gebracht. Wie indexieren Sie Ihre Daten? Wie hosten Sie die Infrastruktur? Wie gehen Sie vor, falls sich die Daten im öffentlichen Internet oder im privaten Internet befinden?  

Sie benötigen eine vereinfachte Aufnahme, Flexibilität und so wenig entwicklungsbezogenen Overhead wie möglich.

Bereitstellung des Suchergebnisses: Ihre Suchmaschine enthält Dokumente, nach denen Sie suchen können. Welches Suchergebnis wird angezeigt? Natürlich besteht das Suchergebnis aus Dokumenten. Doch um welche Dokumente und um wie viele Dokumente handelt es sich und wie werden sie angezeigt? Wie sieht das Layout aus? Bieten Sie auch die Funktion „Autovervollständigung“ an? Werden Sie ein vorausschauendes Sucherlebnis entwickeln? Ein Erlebnis, das die Wünsche Ihrer Anwender proaktiv vorwegnimmt? Stellt das Ergebnis einen Mehrwert dar?

Sie benötigen relevante Ergebnisse, mit denen Sie Ihre Geschäftsziele schneller erreichen, Ihren ROI verbessern und ein angenehmes Anwendererlebnis ermöglichen können.

Management: Sie haben also ein Sucherlebnis konzipiert und entwickelt – wie können Sie es nun verwalten? Falls für das Sucherlebnis Entwicklerzeit beansprucht wurde: Wie viel Zeit haben Sie zusätzlich für die Anpassung und Optimierung eingeplant? Können auch Stakeholder ohne technische Erfahrung an der fortlaufenden Optimierung teilhaben? Wie organisieren Sie den Zugriff? Werden Sie Analytics erfassen und die Suche in Ihre Analytics-Pipeline integrieren?

Ihre Suche soll jetzt für alle Stakeholder nützlich und informativ sein und sich in Zukunft reibungslos optimieren und ändern lassen.

Die Qual der Wahl: Elastic App Search oder Elastic Site Search

Sowohl Elastic App Search als auch Elastic Site Search können Deep Search-Anforderungen in vielen unterschiedlichen Fällen erfüllen. Ganz gleich, ob Sie eine eCommerce-Plattform, eine Wissensdatenbank, Gaminganwendungen, ein SaaS-Angebot oder eine Mischnutzenplattform anbieten oder ein Medienunternehmen sind, jede der beiden Lösungen liefert ein Sucherlebnis auf höchstem Niveau.

Beide Lösungen sind vollständig gemanagt und gut dokumentiert. Sie bieten Zugang zu erstklassigem Support und verfügen über folgende Features:

  • Branchenführende Relevanz und präzises Relevanztuning durch Synonyme, Gewichtungen, Ergebnisrankings usw.
  • Sprachoptimierte Suchmaschinen für verbesserte Suchrelevanz in 14 verschiedenen Sprachen
  • Deep Analytics für nützliche Einblicke in die Suchgewohnheiten der Anwender: wie die Anwender suchen, was sie finden und was sie nicht finden
  • API-basierte Indexierung und Deep Search-API mit Abfragezeitparametern wie Facetting, Filtern, Sortieren und Boosting

Doch welche Lösung ist besser für Sie geeignet? Letztendlich kommt es auf Ihre Vorlieben bei der Aufnahme, der Bereitstellung des Suchergebnisses und dem Management an.

Sollen Ihre Webseiten automatisch gescannt und indexiert werden? Möchten Sie Fertiglösungen oder Plug-Ins verwenden, ein übersichtliches und funktionelles Dashboard nutzen und unterstützende API-Endpunkte einsetzen? Dann ist Elastic Site Search die passende Lösung für Sie.

Oder möchten Sie eine tiefreichende und mannigfaltige Suche und Feature-API-Endpunkte in Ihren Anwendungscode einbinden und die Relevanz über ein einfach zugängliches und modernisiertes Dashboard feineinstellen? Dann sollte Elastic App Search die Lösung Ihrer Wahl sein.

Elastic Site Search: Ein Crawler für alle Anforderungen

Das zentrale Feature von Elastic Site Search ist der Site Search Crawler. Der Site Search Crawler funktioniert genau wie jeder andere Webcrawler auch. Google, DuckDuckGo, Bing – jede bedeutende Suchmaschine entsendet einen Crawler, ein ausgefeiltes System, an alle öffentlich verfügbaren Webseiten. Die Crawler scannen und indexieren diese Webseiten, erfassen Kennzahlen und Inhalte und erstellen währenddessen Dokumente.

Der Site Search Crawler wird von Elastic gehostet und verwaltet. Er übernimmt die Aufnahme für Sie. Er ist automatisiert, reagiert intelligent auf Fehler und benötig keine fortlaufende Konfiguration. Fügen Sie eine Domäne hinzu, optimieren Sie wahlweise Ihre META-Tags, die Datei „Robots.txt“, RSS/Atom-Feeds oder die Sitemap und lehnen Sie sich zurück, während Ihre Seiten in durchsuchbare, indexierte Dokumente umgewandelt werden.

Stellen Sie sich vor, Sie bieten eine große öffentliche Wissensdatenbank an, die viele nützliche Artikel enthält. Wenn der Site Search Crawler auf Ihre Website zugreift, wird jede Webseite unter dieser Adresse analysiert und indexiert. Nach der Indexierung sind Ihre Seiten einem Schema entsprechend in Felder gegliedert. Nun können die Relevanztuningfunktionen eines Features, wie beispielsweise Gewichtungen, angewendet werden.

Sie können einen Satz bestimmter Felder auswählen und dann die Gewichtung der einzelnen Felder feineinstellen. Wie müssen Sie beispielsweise vorgehen, falls Sie die Suche der Anwender nur auf den Titel eines Dokuments beschränken möchten und der Textkörper keinen Einfluss auf die Suchergebnisse haben soll? Wie müssen Sie vorgehen, falls Sie beliebteren Ergebnissen, d. h. Ergebnissen, die mehr Klicks erhalten, ein höheres Ranking zuweisen möchten?

Sie würden die Felder Titel (Title), Text (Body) und Beliebtheit (Popularity) auswählen und dann die Gewichtung auf einen Wert zwischen 1 und 10 feineinstellen.

Die automatisierte Aufnahme und professionelle Features sind verlockend, doch wie sieht es mit der Gestaltung des Sucherlebnisses aus? Wie unterstützt Sie Elastic Site Search dabei, diese intelligente Indexierungsleistung und feinabgestimmte Relevanzsteuerung in Ihre Website zu integrieren? Die in Elastic Site Search angebotenen Optionen für Design und Anpassung reichen von einfachen Fertiglösungen (Out-of-the-Box-Lösungen) bis zu vollständig anpassbaren und dynamischen Sucherlebnissen.

Durch Installation des JavaScript-Snippets von Elastic Site Search und durch Erstellung eines neuen Suchfelds oder Bearbeitung Ihres vorhandenen Suchfelds können Sie das konfigurierbare, sofort einsetzbare Site Search-Overlay zur Anzeige Ihrer Suchergebnisse nutzen.

Kann das Design maßgeschneidert werden? Elastic Site Search bietet einen Satz von APIs an, die Ihnen bei der Individualisierung des Designs helfen. Es sind Erstanbieter-Clients für Java, Node.js, Python und Ruby verfügbar. Wir bieten beliebte JavaScript-Bibliotheken für die Suche und Autovervollständigung an, die Sie als Ausgangspunkt für die Entwicklung fantasievoller, individueller Erlebnisse nutzen können:

Elastic Site Search zeichnet sich besonders in Situationen aus, in denen der Crawler die schwere Arbeit erledigen kann. Die Lösung ist in kürzester Zeit einsatzbereit, kann Ihren Wünschen entsprechend feineingestellt werden und hält Ihre Suchergebnisse stets aktuell. APIs und Plug-Ins von Elastic Site Search sind hilfreich für die Supplementierung. Einige Features sind jedoch nur innerhalb des Dashboards verfügbar und verfügen über keine entsprechenden API-Endpunkte.

Mit der neuen Elastic App Search erhalten Sie umfassende programmgesteuerte Kontrolle über tiefere API-Endpunkte.

Elastic App Search: API-orientiert und anwenderfreundlich

Elastic App Search ist eine API-orientierte Lösung. Es sind Erstanbieter-Clients für Ruby, JavaScript, Java, Node.js und Python verfügbar. Elastic App Search setzt keine Crawler ein.

Entwickler, die die Elastic App Search APIs nutzen, bestimmen selbst, wie die zu indexierenden Objektdaten generiert werden und wie sie die vielfältigen API-Endpunkte verwenden. Aufnahme, Bereitstellung des Suchergebnisses und die allgemeine Implementierung erfolgen programmgesteuert. Ganz gleich, ob Entwickler die Suchfunktion in ein ansprechendes Dashboard, eine komplexe Web- oder Mobilanwendung, ein Spiel oder einen Store integrieren, falls sie es programmieren können, können sie ihre Objekte durchsuchbar machen.

Die gesamte Dashboardfunktionalität wurde in robuste, feinabstimmbare APIs übertragen, die Sie dann in Ihren Anwendungscode integrieren können. Sie können beispielsweise sowohl mit Elastic Site Search als auch mit Elastic App Search einen Synonymsatz erstellen. Synonymsätze sind äußerst nützlich, da Suchende häufig sehr unterschiedliches Vokabular verwenden. Die eine Person spricht von einem Auto, eine andere dagegen von einem Fahrzeug oder einem Wagen oder einem Automobil ...

Innerhalb von Elastic Site Search können Sie Synonyme über das Dashboard zuordnen:

Dies ist auch innerhalb des Dashboards von Elastic App Search möglich ...

... Sie können auch eine Anfrage gegenüber einem gut dokumentierten API-Endpunkt stellen:

curl -X POST 'https://host-xxxxxx.api.swiftype.com/api/as/v1/engines/rent-a-car/synonyms' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxx' \
-d '{
  "synonyms": ["car", "vehicle", "jalopy"]
}'

Die Elastic App Search-APIs gehen wesentlich tiefer. Stellen Sie sich einmal vor, wie die Analytics API Suite von Entwicklern einer eCommerce-Plattform genutzt werden kann. Die Suche beginnt mit einem freien Ausdruck, daher können die analytischen Einblicke, die sich daraus ergeben, tiefgreifend sein. Die Analytics Suite kann Informationen zu Anwenderabfragen liefern und aufzeigen, welche Dokumente innerhalb eines anpassbaren Zeitrahmens angeklickt wurden.

curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/sample-engine/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "filters": {
    "date": {
      "from": "2018-06-15T12:00:00+00:00",
      "to": "2018-06-19T00:00:00+00:00"
    }
  }
}'

Wie wäre es beispielsweise, wenn sich ein von Ihnen in Ihrem Store verkaufter Artikel über Nacht zu einer Sensation entwickeln würde? Plötzlich nehmen Suchabfragen und Klicks für ein Dokument explosionsartig zu. Es besteht ein erhebliches Geschäftspotenzial. Und was nun?

Sie können eine Funktion erstellen, die die Analytics APIs dazu nutzt, die beliebtesten über die Suche gefundenen Dokumente zu erfassen. Sie können diese Funktion dann so erweitern, dass diese Dokumente automatisch an einer markanten, ins Auge springenden Stelle innerhalb Ihrer Homepage veröffentlicht werden. Anwendersuchabfragen zeigen die Nachfrage auf und automatische Funktionen ermöglichen die dazu passende Optimierung in Echtzeit. Analytics sind zwar tiefgreifend und nützlich, doch es sind die Suchfunktionen von Elastic App Search, durch die sich die Lösung auszeichnet.

Die Schemafelder innerhalb eines Dokuments können einen von vier Werttypen aufweisen: Text, Zahl, Datum und Geolocation. Elastic App Search verfügt über Deep Search-Funktionalität für alle vier Typen. Geolocation wird aus gutem Grund immer beliebter. Eine Person befindet sich irgendwo oder bewegt sich auf einen neuen Ort zu und möchte wissen, welche Möglichkeiten, Sehenswürdigkeiten, Geschäfte, Hotels usw. es in der Nähe gibt.

Durch Erfassen der Anwenderkoordinaten können Sie den jeweiligen geographischen Standort der Anwender in die Suchabfragen einbinden und die Relevanz der Suchergebnisse basierend auf der Nähe steigern.

Betrachten wir einmal eine Mobilanwendung, in der weltweit Restaurants mit gesundheitsbewusster Küche aufgeführt werden ...

curl -X GET 'https://host-xxxxxx.api.swiftype.com/api/as/v1/engines/food-paradise/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer search-xxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "boosts": {
    "current_location": {
      "type": "proximity",
      "function": "linear",
      "center": "37.6213, -122.3790",
      "factor": 8
    }
  },
  "query": "sushi"
}'

Eine Suchabfrage für Sushi würde in Anbetracht der Nähe zum Center die Relevanzbewertung eines Ergebnisses mit dem angegebenen Faktor multiplizieren. Das Center wird anhand der vom Suchenden empfangenen Standortdaten informiert. Diese Informationen ermöglichen es, Ergebnisse mit räumlichem Bezug und daher von hoher Relevanz zu liefern.

Ein dritter Fall ist die erweiterte Gruppierung, die nur mit der Tiefe der APIs von Elastic App Search möglich ist. Stellen Sie sich vor, Sie würden Dokumentation bereitstellen. Wenn Sie die Produktversionen ändern, ändern Sie auch die Version Ihrer Dokumentation.

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/sample-engine/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer search-o5bk7qpaedd2xmcsavb1d8os' \
-d '{
  "query": "meta tags",
  "result_fields": {
    "url": {
      "raw": {}
    },
    "title": {
      "raw": {}
    },
    "description": {
      "raw": {}
    },
    "version": {
      "raw": {}
    }
  },
  "group": {
    "field": "url"
  }
}'

Würde ein Anwender nach einem bestimmten Feature suchen, wie würden Sie die unterschiedlichen Dokumentversionen, in denen das Feature behandelt wird, in Einklang bringen? Eine Gruppenabfrage würde sicherstellen, dass alle Seiten mit abweichenden Versionen des gleichen Themas in einem einzelnen Suchergebnis angezeigt werden. Sie können den Anwendern erlauben, ihre gewünschte Version aus diesem singulären Ergebnis auszuwählen, statt Dutzende Ergebnisse sichten zu müssen, die zu unterschiedlichen Versionen gehören.

Mit Elastic App Search wird die Suche zu viel mehr als nur die Reaktion auf Anwender, die in einem Suchfeld nach einem relevanten Dokument suchen. Die Suche wird zu einer funktionellen Aktion: Ihr Code kann Ihre Dokumente auf intelligente Art durchsuchen. Sie können Aktionen basierend auf dem von Ihnen gesuchten Objekt automatisieren, ohne den Rahmen eines Suchfelds überstrapazieren zu müssen.

Auf den ersten Blick mag Elastic App Search als ein Produkt für stärker technisch orientierte Anwender erscheinen. Es ist tatsächlich so, dass die APIs Entwickler begeistern, die nach einer flexiblen und relevanten Suche Ausschau halten. Doch obwohl Elastic App Search Ihnen die Erstellung der Benutzeroberfläche und die Indexierung selbst überlässt, sind das Dashboard und alle darin angebotenen Funktionen auf allen Ebenen der technischen Expertise anwenderfreundlich.

Zusammenfassung

Die Lösungen von Elastic unterstützen Sie bei all Ihren Geschäftsanforderungen. Wenn Sie Ihre Websites oder Ihre Anwendungen mit einem exzellenten Sucherlebnis verknüpfen möchten, entscheiden Sie sich für Elastic Site Search oder Elastic App Search – je nachdem, welche Lösung besser zu Ihren Anforderungen passt.

Weitere Informationen finden Sie auf den Seiten der Lösungen Elastic Site Search und Elastic App Search. Beide Lösungen können Sie ohne Angabe Ihrer Kreditkartendaten 14 Tage lang kostenlos testen.