Back to top

Die Suche über 10 fortgeschrittene Techniken verbessern, die bisher kaum bekannt sind

Für die Unternehmenssuche, Suche auf E-Commerce-Websites und andere durch die Suche gestützte Anwendungen

Die meisten Unternehmen heutzutage achten stark auf die Qualität ihrer Daten und die Technologien zum Abruf dieser Daten, da diese kritische Bedeutung für den Kunden haben und unmittelbaren Wert liefern, den Betrieb optimieren und Geschäftswerte steigern. Bei all den zahlreichen Datenformaten, Datenquellen und Sicherheitsmodellen ist die Suche nicht länger nur für einige Geschäftsbereiche von Bedeutung, sondern wirklich für jeden wichtig. Alle Unternehmen nutzen die eine oder andere Anwendung, die auf die Suche gestützt ist, wie digitales Publishing, geschäftliche Forschung, Webportale (sowohl intern als auch extern), Online-Verzeichnisse (für Mitarbeiter, Produkte, Teile, Anbieter, Kunden), E-Commerce und dergleichen mehr.

Wie arbeiten schon lange mit Suchmaschinen. Im Rahmen unserer Arbeit haben wir viele fortgeschrittene Funktionen für Suchmaschinen entdeckt und verfeinert, die bessere Benutzererfahrung und Wettbewerbsvorteile bringen können. Wir wenden einen formellen, erprobten Prozess an, um sicherzustellen, dass wir die Daten des Unternehmens vollständig verstehen und sehen, wie wir damit dem Benutzer helfen können, die Geschäftsziele zu erfüllen. 

Im Folgenden stellen wir 10 fortgeschrittene Techniken für die Feineinstellung von Suchmaschinen vor, die von Unternehmen oft übersehen werden, oder die übergangen werden, weil sie schwieriger zu implementieren sind. Mit der richtigen Einrichtung können sie aber eine beachtliche Verbesserung für Suche und Datenanalyse bieten.

 

1.  Verbunde während der Indexierung  

Es kann schwer fallen, die Dokumente zu denormalisieren, damit sie effizient durchsucht werden können. Aber nur so können Suchen mit einer Dauer von unter einer Sekunde bei großen Tabellen erreicht werden. Vielleicht werden auch mehrere Streams mit Updates von verschiedenen Quellen genutzt, die verbunden werden müssen. Search Technologies hat hierfür ein Staging Repository entwickelt, das diese Probleme behebt. Hierbei werden die Verbunde bereits während der Indexierung vorgenommen und immer aktuell gehalten, egal, was sich ändert.

verbunde während der indexierung

Das Staging Repository nimmt über mehrere Streams Input von verschiedenen Tabellen auf. Diese Datensätze werden automatisch verbunden und erneut verarbeitet, wenn in den Inputstreams Änderungen auftreten.

Nehmen wir an, wir haben zwei Tabellen:  Mitarbeiter und Geschäftsgruppen. Jeder Mitarbeiter gehört zu mehreren Geschäftsgruppen, daher werden die beiden Tabellen verbunden und denormalisiert, damit Mitarbeit über die Eigenschaften der Geschäftsgruppe gesucht werden können.

Das Staging Repository wird die beiden Tabellen automatisch während der Indexierung verbinden. Hierdurch werden mehrere denormalisierte Indexe erstellt und für die Suchmaschinen verwahrt. Wenn jetzt Änderung bei einem der Mitarbeiter auftreten, wird diese Änderung direkt in den Attributen dieses Mitarbeiters in den Geschäftsgruppen reflektiert. Andersrum werden jegliche Änderungen bei Geschäftsgruppen automatisch dazu führen, dass alle betroffenen Mitarbeiter erneut verarbeitet werden. Alles echt super praktisch.

Da mehr und mehr Data Warehouses und große Geschäftssysteme sich der Suche zuwenden, wird die Verbindung während der Indexierung immer mehr zu einer Systemanforderung von kritischer Bedeutung.

 

2.  Benutzerdefinierte Sammlung 

Suchmaschinen werden heutzutage für Analyse in Echtzeit genutzt – ein Bereich, der früher von relationalen Datenbanken und OLAP (Online Analytical Processing) übernommen wurde. Suchmaschinen bieten Geschäftsanalysen in Sekunden (statt Stunden) und sind flexiblerdeutlich besser skalierbar und leicht zu verwenden.

Wie oft hat man schon eine Statistik zu einer ganz speziellen Sammlung gebraucht, die man zwar von der Suchmaschine erhalten könnte, die aber einfach nicht verfügbar war? Wir können diese ganz einfach erstellen, basierend auf Ihren ganz speziellen Datenquellen und Datenstrukturen. Moderne Suchmaschinen ermöglichen Plug-Ins, um benutzerdefinierte Sammlungen zu erstellen. Wir haben Erfahrung darin, solche Sammlungen zu erstellen, einschließlich hochgradig skalierbarer, verteilter Sammlungen.

 

3.  Normalisierte und benutzerdefinierte Berechnung der Relevanzbewertung 

Die Relevanzbewertung kann sehr hilfreich sein, um zu bestimmen, wie gut die Leistung der Suchmaschine ist. Die Standardformeln (wie TDF/IDF) weisen aber oft Schwankungen von 0,0 bis 25,0 (oder sogar mehr) auf, so dass es schwer ist, Änderungen an der Genauigkeit richtig einzustufen.

Um dieses Problem zu lösen hat Search Technologies die Berechnungsweisen für die Relevanzbewertung komplett überarbeitet, unsere Werte sind auf einen Bereich von 0,0 bis 1,0 normalisiert. Hierdurch wird es viel einfacher, Ergebnisse anzuzeigen und zu vergleichen, insbesondere bei unterschiedlichen Abfragen.

engine score values

Aber die normalisierte Bewertung ist nur der erste Schritt. Search Technologies kann Berechnungsweisen für benutzerdefinierte Relevanzbewertung erstellen, für jeden Zweck, der Ihnen vorschwebt. Dies kann für zahlreiche verschiedene Zwecke genutzt werden, wie Beeinflussung von Daten, Bewertung nach Popularität, Personalisierung, Relevanz über maschinelle Lernverfahren und statistische Spamerkennung.

 

4.  Erstellen benutzerdefinierter Suchoperatoren 

Vielleicht gibt es ja auch fortgeschrittene, benutzerdefinierte Suchoperatoren, die Sie gerne hätten und die von der Suchmaschine nicht bereitgestellt werden? Das gehört zu unserem Standard-Repertoire, darunter XML Suche, gebundene Wildcards, Bereichssortierung (das Sortieren von geografischen Ergebnissen in logarithmische Einheiten: 0-5 km, 5-10 km, 10-50 km, 50-100 km, 100-500 km usw.) und viele weitere besondere Fälle.

 

5.  Abfragen zwischen Suchmaschinen übersetzen

Dies ist sehr hilfreich, um bei Umzügen zwischen Suchmaschinen die Legacy-Anwendungen weiter zu unterhalten. Korrekt vorgenommen kann man damit die Suchfunktionen in den Anwendungen erhalten, die der Community Ihrer Benutzer seit langem gute Dienste erweisen. Damit wird Zeit gespart, die sonst investiert werden müsste, um neue Funktionen von Null auf zu programmieren.

Wir verfügen über fortgeschrittene Query Parser, die die ursprüngliche Abfrage in eine maschinenunabhängige Zwischenstufe umformen, und Query Builder, die diese Zwischenstufe dann in die Abfragesprache der Zielmaschine umformen. Diese Tools haben schon in vielen Projekten für Suchmaschinen-Migrationen viele Monate Entwicklungszeit eingespart.

 

6.  Exakt aufzeigen, wo wie viel Speicher genutzt wird

Für Systeme mit extremer Skalierbarkeit (Milliarden Datensätze) ist die Speichernutzung von kritischer Bedeutung. Es gibt Hilfsmittel und Methoden, um die Speichernutzung und Zuweisungen bis hinab auf das Feldniveau zu bestimmen.

Welche Datenfelder und Suchfunktionen verbrauchen in Ihrer Suchmaschine die meisten Speicherkapazitäten? Wie können Sie Abfragen, Index-Struktur, Konfiguration der Suchmaschine und Suchverhalten ändern, um Speicher zu sparen?

Diese Funktion ist von kritischer Bedeutung, um die Leistung der Suchmaschine zu Zeiten mit Spitzenlast sicherzustellen und Uptime zu garantieren, wenn massive Skalierbarkeit erforderlich ist.

 

7.  Verbesserung der Relevanz

Einen großen Teil unserer Zeit verbringen wir damit, dass wir die Ergebnisse der Abfrage ansehen und uns fragen: „Sieht das so gut aus? Ist es besser als vorher? Warum, oder warum nicht?“ 

Wenn man versucht, die Genauigkeit der Suchmaschine zu verbessern, muss man jede Abfrage doppelt (oder dreifach oder vierfach) überprüfen, wie auch jede Struktur und jede Statistik. Wir haben alle nur denkbaren Probleme und Bugs in den verschiedensten Suchsystemen gefunden, darunter dutzende häufiger Nutzungsfälle, wie etwa:

  • Abfragestruktur nicht ganz korrekt
  • Gewichtungen nicht eingestellt
  • Probleme mit Datumsberechnung
  • Bug bei der Lemmatisierung
  • Lemmatisierung von Akronymen
  • Probleme mit der zufälligen Erweiterung des Thesaurus 
  • Probleme mit der Dokumentsicherheit
  • und dergleichen mehr. 

Konstantes Testen und Messen der Suchmaschinenbewertung hilft dabei, Abfragestrukturen zu verbessern und Probleme anzusprechen, die schlechte Leistung verursachen.

Sehen Sie auch unser On-demand Webinar für eine komplette Diskussion (mit Live-Demo) der Algorithmen für die Relevanzbewertung.

 

8.  Dynamische, durchsuchbare Felder

Wäre es nicht nett, ein Feld im RAM zu aktualisieren, ohne das Dokument neu indexieren zu müssen? Das ist eigentlich gar nicht so schwer, wir haben das schon für einige Kunden umgesetzt. Wir erreichen das Ziel, indem wir die Bitlisten der Felder im RAM halten und REST Endpunkte für die Suchmaschine bieten, um die Bitlisten ohne jegliche Latenz zu aktualisieren. Kennzeichnungen werden in einem NoSQL-Speicher aufbewahrt, um Persistenz und Zuverlässigkeit zu bieten.

Dynamische Felder sind perfekt für Funktionen wie Kennzeichnungen für gelesene/ungelesene Daten (nach Benutzer), Ordner für Suchergebnisse (nach Benutzer), Dokumente verbergen (in Suchergebnissen, nach Benutzer), dynamische Verfügbarkeit des Inventars, dynamische Updates des Status usw.

Dynamische Feld-Kennzeichnungen können durchsucht und in den Suchergebnissen ausgegeben werden.

 

9.  Anreicherung von Dokumenten berechnen und speichern

Sie wollen, dass Ihre Dokumente vor dem Indexieren angereichert werden? Die wollen diese Anreicherungen irgendwo speichern, so, dass sie nicht verloren gehen? Sie wollen diese Anreicherung offline und im Hintergrund vornehmen? Hierbei kann ein Staging Repository helfen. 

Das Staging Repository hält separate „Umfänge“ bereit, in denen Anreicherungen Daten speichern können. Dieser Umfang kann jeweils im Staging Repository bereitgehalten werden, auch wenn das Dokument aktualisiert oder geändert wird.

Zu typischen Anreicherungen gehören:

  • Per OCR (Optische Zeichenerkennung) Text aus Bildern extrahieren
  • Analyse der semantischen Dokumentvektoren
  • Extrahierung komplexer Entitäten
  • Semantische Analyse des Dokuments (über Offline-Techniken wie semantische Analyse der Kookkurrenz)
  • Kategorisierung und Clusterbildung
  • und dergleichen mehr.

 

10.  Suche nach uneindeutigen Namen

Sollen Namen aufgefunden werden, auch wenn diese falsch oder unklar geschrieben sind? Diese Funktion ist oft notwendig bei Patenten, Bankkonten, Flugverbotslisten, Datenbanken bekannter Terroristen und Master-Daten-Modellen. 

Leider sind Standard-Suchmaschinen so entworfen, dass sie Dokumente durchsuchen, nicht Namenslisten. Die beiden Arten der Quellen unterscheiden sich stark. Ein einzelner Tippfehler in einer Namensdatenbank verfälscht damit einen großen Teil des durchsuchbaren Contents (wenn nicht sogar den gesamten). 

Die Suchmaschine kann konfiguriert werden, um alle einzelnen Bestandteile des Namens zu indexieren und damit dann in einer enormen Namens-Datenbank eine herausragende Fuzzy Match-Suche für Namen zu bieten. Hierbei müssen wir nur nicht einfach nur der Suchmaschine Namen füttern und die Fuzzy-Funktion einschalten, sondern die Art der Treffer in Kategorien einordnen und sicherstellen, dass jede Art Dokumente liefert, ehe sie kombiniert werden. Jede Kategorie wird dabei auf Exaktheit geprüft und dann gewichtet und mit anderen Kategorien kombiniert, um die vollständige Suche zu erstellen.

Lesen Sie hier mehr über die Methodologie für den Fuzzy-Abgleich von Namen. 

 

Schlussworte

Uns begegnet kaum eine „standardmäßige“ Implementierung einer Suchmaschine. Jedes Unternehmen hat einzigartige Benutzeranforderungen, Geschäftsanforderungen und Datenstrukturen. Suchmaschinen sind eine leicht verfügbare, aber komplexe Technologie, daher können Unternehmen viele Chancen verpassen, wenn sie auf einen Suchmaschinen-Consultant verzichten. Die hier besprochenen Funktionen sind nur die Spitze des Eisbergs, es gibt noch viele andere Sachen, die man machen kann, um die Suche zu verbessern. Ein Suchexperte kann helfen zu bestimmen, was für die ganz konkreten Bedürfnisse möglich ist, um Risiken zu minimieren, Notwendigkeit für Überarbeitungen zu reduzieren, Kosten zu sparen, Suchqualität zu steigern und Geschäftswerte zu steigern. 

-- Paul

0