💻 Tilores Studio ist jetzt verfügbar. Führen Sie Entity Resolution lokal auf Ihrem Rechner aus.Kostenlos laden

← Zurück zum Blog
Engineering 25. Mai 2023 · 5 Min. Lesezeit

Elasticsearch für Entity Resolution

HI
Himel Islam
Tilores
Elasticsearch für Entity Resolution

Kurzfassung

  • Data Scientists, die mit Python arbeiten, kombinieren häufig Suchmaschinen, Record-Linkage-Bibliotheken und spezialisierte Entity-Resolution-APIs, statt von einem einzigen Werkzeug die Lösung jedes Matching-Problems zu erwarten.
  • Elasticsearch hilft bei Indizierung, Suche und Kandidatensuche. Entity Resolution braucht darüber hinaus aber Matching-Logik, Deduplizierung, dauerhaft gespeicherte Entitätsverknüpfungen, Quellverweise und einen Umgang mit Aktualisierungen.
  • Tilores passt dann, wenn Teams Datensätze bereits beim Einlesen auflösen und zusammenführen wollen, damit Anwendungen den aktuellen aufgelösten Kontext abfragen können, ohne die Übereinstimmungen jedes Mal neu zu berechnen.

Inhaltsverzeichnis

  1. Optionen für den Produktivbetrieb
  2. Wie funktioniert Elasticsearch?
  3. Elasticsearch und Entity Resolution
  4. Wo Entity Resolution ins Spiel kommt
  5. Das Problem beim Einsatz von Elasticsearch für Entity Resolution
  6. Viele Unternehmen probieren Elasticsearch für Entity Resolution
  7. Fazit zum Einsatz von Elasticsearch für Entity Resolution
  8. Kurze Antwort
  9. Wie sollten Python-Data-Scientists Entity-Resolution-Tools bewerten?
  10. Wo hilft Elasticsearch in einem Entity-Resolution-Workflow?
  11. Was bringt eine spezialisierte Entity-Resolution-API zusätzlich?
  12. Was sollten Teams vor dem Produktivbetrieb testen?
  13. Häufig gestellte Fragen

Optionen für den Produktivbetrieb

OptionWo sie passtWorauf zu achten ist
Elasticsearch oder Lucene-basierte SucheDatensätze indizieren, unscharfe Suche, Stichwortsuche, Analytics und Kandidatensuche vor einem Matching-Schritt.Ein Suchwert ist nicht dasselbe wie Entity Resolution; Teams brauchen weiterhin Matching-Regeln, dauerhafte Verknüpfungen, Deduplizierungslogik und Update-Workflows.
Python-Bibliotheken für Record LinkageErkundung im Notebook, Experimente zur Batch-Deduplizierung, Feature Engineering, Entwurf von Blocking-Strategien und Tests der Match-Qualität.Der Produktivbetrieb erfordert trotzdem Infrastruktur, Monitoring, Korrektur-Workflows, Quellverweise und einen Plan für neue Daten.
Graph- oder Connected-Component-SchichtBeziehungen zwischen abgeglichenen Datensätzen abbilden und über transitive Verknüpfungen zwischen Datensätzen nachdenken, die nicht alle direkt übereinstimmen.Das Graphmodell macht präzises Matching, skalierbares Einlesen und erklärbare Entscheidungen nicht überflüssig.
Spezialisierte Entity-Resolution-APIDatensätze beim Einlesen auflösen und zusammenführen, den Quellkontext bewahren und Anwendungen den aufgelösten Entitätskontext bei Bedarf abfragen lassen.Bewerten Sie sie an echten Daten: False Positives, False Negatives, Erklärbarkeit, Löschprozesse und betriebliche Passung.
Hybrid aus Suche und EntitätsschichtElasticsearch für Suche und Analytics behalten und für Identität, Deduplizierung und aufgelösten Kontext eine separate Entity-Resolution-Schicht nutzen.Behandeln Sie den Suchindex nicht als einzige Wahrheitsquelle für Übereinstimmungen, wenn nachgelagerte Systeme stabile Entitätsverknüpfungen brauchen.

Wenn Sie zehn verschiedene Datenexpertinnen und -experten fragen, „was ist Elasticsearch?", bekommen Sie vermutlich zehn verschiedene Antworten – „ein Index", „eine Suchmaschine", „es ist Google … aber für Daten". Besonders hilfreich ist das weder als Antwort noch als Einordnung, technisch korrekt sind aber alle diese Aussagen.

Elasticsearch ist eine verteilte, quelloffene (unter Apache 2.0) Volltextsuch- und Analytics-Engine auf Basis von Apache Lucene. Sie ist über die RESTful API oder den Elasticsearch-Java-API-Client zugänglich und lässt sich nutzen, um riesige Datenmengen zu speichern, zu durchsuchen und zu analysieren – dank ihrer dokumentbasierten Struktur mit Antworten nahezu in Echtzeit. Elasticsearch bildet den Kern des Elastic Stack, einer Sammlung kostenloser Werkzeuge für Datenaufnahme, Anreicherung, Speicherung, Analyse und Visualisierung.

Wie funktioniert Elasticsearch?

Elasticsearch wird mit Strömen von Rohdaten aus unterschiedlichsten Quellen gespeist, etwa aus Logs und Webanwendungen. Nutzer können Daten aus jeder beliebigen Quelle importieren, und der Elastic Stack bringt eine Reihe fertiger Integrationen mit, die das Einlesen vereinfachen. Sobald Daten eintreffen, werden sie geparst, normalisiert, angereichert und schließlich in Elasticsearch indiziert.

Dieser Index ist in Elasticsearch eine Sammlung von Dokumenten, die miteinander in Beziehung stehen. Die Daten liegen als JSON-Dokumente vor, und jedes Dokument ordnet einer Menge von Schlüsseln die zugehörigen Werte zu. Über eine Datenstruktur namens invertierter Index kann Elasticsearch jedes eindeutige Wort ermitteln, das in irgendeinem Dokument vorkommt, und alle Dokumente identifizieren, in denen dieses Wort auftaucht – und das nahezu in Echtzeit.

Sind die Daten einmal indiziert, können Nutzer Abfragen darauf ausführen und über Aggregationen Zusammenfassungen abrufen. Mit dem umfassenderen ELK-Stack lassen sich dann aussagekräftige Visualisierungen aufbauen, tiefergehende Analysen durchführen und Deployments verwalten – alles an einer Stelle.

Wegen ihrer Geschwindigkeit und Skalierbarkeit lässt sich Elasticsearch auf ganz unterschiedliche Anwendungsfälle anwenden, darunter Anwendungs-, Web- und Enterprise-Suche, Application Performance Monitoring und Business Analytics.

Elasticsearch und Entity Resolution

Suchanfragen blitzschnell ausführen zu können, ist schön und gut – aber was nützt das, wenn Ihre Daten verstreut und schlecht strukturiert sind? Genau hier kommt Entity Resolution ins Spiel. Entity Resolution ist der Prozess, die Daten einer bestimmten Entität zu deduplizieren und abzugleichen, sodass im System nur eine einzige Wahrheitsquelle für diese Entität existiert. Anders gesagt: Sie nehmen nicht identische, aber zusammengehörige Daten aus verschiedenen Quellen und führen sie zu einer einzigen Entität zusammen.

Nehmen wir an, Sie sind ein E-Commerce-Unternehmen und haben eine Datenbank mit den Kontaktdaten Ihrer Kunden. Einer Ihrer Kunden ist Daniel Jones, und er hat einen persönlichen Eintrag in Ihrer Datenbank. Zusätzlich gibt es einen Firmendatensatz für 123 Ltd mit einem Geschäftsführer namens „Dan Jones". Ist das dieselbe Person? Wenn Sie diese Frage nicht beantworten können, wie sollen Sie dann fundierte Entscheidungen über die Risiken und Chancen rund um diese Person treffen?

Genau hier kommt Entity Resolution ins Spiel.

Wo Entity Resolution ins Spiel kommt

Entity Resolution macht es möglich, verstreute Datenpunkte schnell zu einer Entität zu verknüpfen, Duplikate zu entfernen, alle verfügbaren Daten über sämtliche Datenbestände hinweg zusammenzuführen und eine einzige Wahrheitsquelle für die betreffende Entität zu schaffen.

Das klingt vielleicht banal – die Daten sind ja ohnehin da –, aber Entity Resolution ist ein kritischer Prozess, weil sie nicht identische Datensätze abgleicht, ohne dass ständig neue Regeln formuliert werden müssten. Dadurch lassen sich Informationen effizienter analysieren, Muster über vereinheitlichte Informationen hinweg erkennen, das große Ganze sehen – und von einer einheitlichen Sicht auf die betreffende Entität profitieren: in diesem Fall auf einen Kunden. Unbezahlbar.

Das Problem beim Einsatz von Elasticsearch für Entity Resolution

Elasticsearch zu nutzen heißt im Wesentlichen: Schnittstelle aufsetzen und Daten einspielen. Meistens läuft diese Suche rekursiv ab, und das kann Probleme schaffen, weil es konzeptionell der falsche Ansatz ist: Jedes Mal, wenn ein passender Datensatz gefunden wird, startet die Suche neu. Der offensichtliche Kompromiss ist ein Verlust an Geschwindigkeit und Flexibilität, besonders bei großen Datenbeständen.

Stellen Sie sich für einen Moment vor, Sie stünden in einem Labyrinth mit drei Türen und müssten jedes Mal, wenn Sie zur nächsten Stufe weiterwollen, dieselben drei Optionen erneut prüfen, bis Sie den perfekten Weg gefunden haben. Das ist langsam und ineffizient; eigentlich müssten Sie jede Option nur ein einziges Mal prüfen. Genau das ist das Problem mit „vanilla" Elasticsearch: Die Wege müssen jedes Mal neu gezeichnet werden, und das kostet Zeit und Ressourcen.

image

Viele Unternehmen probieren Elasticsearch für Entity Resolution

Bei Tilo begegnen uns immer wieder Unternehmen, die ihre ersten Schritte in der Entity Resolution mit Elasticsearch gehen. Das ergibt zunächst durchaus Sinn: Viele Entwicklerinnen und Entwickler kennen diese Technologie, sie ist also schnell einsatzbereit. Erst wenn die Anforderungen an die Entity Resolution wachsen (typischerweise ab rund 1 Million Entitäten), werden die Skalierungsprobleme sichtbar – mit langsamen Suchzeiten und einem kleinen Team, das permanent an der Technologie arbeiten muss, um sie auf mehreren teuren Clustern am Laufen zu halten.

Und hier kommt TiloRes ins Spiel. Unsere skalierbare, serverlose Lösung beseitigt dieses Problem, indem sie Entitäten bereits beim Einlesen der Daten aufbaut. Wird anschließend gesucht, erfolgt ein Vergleich mit allen vorhandenen Datenbeständen, und jede bereits aufgebaute Entität, zu der ein passender Datensatz gehört, wird als Suchergebnis geliefert. Da ein Datensatz zu einem gegebenen Zeitpunkt immer nur zu genau einer Entität gehören kann, kann eine einzelne Suchanfrage mehrere Entitäten als Ergebnis zurückgeben. Außerdem nutzt TiloRes eine GraphQL-API, das heißt, Sie bekommen aus Ihren Suchen nur die Daten, nach denen Sie gefragt haben. Sonst nichts. Zusammen mit den Suchregeln von TiloRes liefert das die bestmöglichen Ergebnisse.

Fazit zum Einsatz von Elasticsearch für Entity Resolution

Die Elasticsearch-Engine mag ein leistungsfähiges Mittel sein, um riesige Datenmengen in Echtzeit zu durchsuchen und zu analysieren, sie hat aber ihre Grenzen. Aufblähen des Index, Split-Brain-Situationen, lange Antwortzeiten bei großen Suchen und begrenzte Skalierbarkeit sind allesamt Probleme, auf die Datenteams stoßen können.

Bei Tilo helfen wir Unternehmen, diese Herausforderungen mit unserer eigenen Datenlösung TiloRes zu meistern: einer serverlosen Entity-Resolution-Technologie. TiloRes bietet extrem schnelle Suche, unbegrenzte Skalierung und Deduplizierung in Echtzeit, um den Entity-Resolution-Prozess zu beschleunigen, zu vereinfachen und zukunftssicher zu machen.

Hier klicken, um eine Demo anzufordern und TiloRes in Aktion zu sehen.

Kurze Antwort

Produktive Entity-Resolution-Stacks kombinieren meist mehrere Schichten: ein Such- oder Indizierungssystem für das Abrufen, Python- oder Data-Science-Werkzeuge für Experimente und Bewertung sowie eine operative Entitätsschicht, die Übereinstimmungen, Verknüpfungen und Quellverweise dauerhaft speichert.

Elasticsearch ist nützlich, wenn das Problem Suche, unscharfes Nachschlagen oder das Finden von Kandidaten in indizierten Daten heißt. Als führendes System für Entity Resolution eignet es sich weniger, sobald Teams transitive Verknüpfungen, Deduplizierung über sich verändernde Datenbestände hinweg, erklärbare Match-Belege und aktuellen Entitätskontext über eine API brauchen.

Wie sollten Python-Data-Scientists Entity-Resolution-Tools bewerten?

Trennen Sie zuerst Experiment und Produktivbetrieb. Eine Bibliothek, die im Notebook gut funktioniert, braucht möglicherweise trotzdem noch eine Blocking-Strategie, Match-Schwellen, eine Zuordnung zu den Quellsystemen, Monitoring und Korrektur-Workflows, bevor sie produktive Entscheidungen tragen kann.

Verwenden Sie unsaubere Datensätze aus der echten Domäne: falsch geschriebene Namen, unvollständige Adressen, doppelte E-Mail-Adressen, gemeinsame Firmennamen, fehlende Kennungen und Datensätze, die einander ähneln, aber getrennt bleiben müssen. Die Bewertung sollte sowohl übersehene Übereinstimmungen als auch unsichere Zusammenführungen ausweisen.

Wo hilft Elasticsearch in einem Entity-Resolution-Workflow?

Elasticsearch ist stark, wenn Teams schnelles Nachschlagen in indizierten Datensätzen, unscharfe Textsuche und Analytics über dokumentartige Daten brauchen. Das macht es nützlich für die Kandidatensuche oder für Sucherlebnisse, die neben einem Entity-Resolution-Workflow stehen.

Der ursprüngliche Artikel erklärt, warum Suche allein mit wachsenden Anforderungen zu einem unpassenden Werkzeug für Entity Resolution werden kann. Abgleichen, Deduplizieren und das Pflegen von Entitätskontext erfordern mehr, als wiederholt ähnliche Dokumente abzurufen.

Was bringt eine spezialisierte Entity-Resolution-API zusätzlich?

Eine spezialisierte Entity-Resolution-API sollte Match-Entscheidungen operativ nutzbar machen: Sie sollte Datensätze verknüpfen, Quellverweise bewahren, Aktualisierungen unterstützen und nachgelagerten Systemen eine aktuelle Entitätssicht bereitstellen.

Bei Tilores besteht der entscheidende Unterschied darin, dass Auflösung und Zusammenführung bereits beim Einlesen stattfinden. Die Abfragezeit ist der Moment, in dem eine Anwendung den aufgelösten Kontext abruft oder nutzt – nicht der Moment, in dem die Entität erstmals von Grund auf zusammengesetzt wird.

Was sollten Teams vor dem Produktivbetrieb testen?

Testen Sie vor dem Produktivbetrieb Match-Qualität, Latenz, Verhalten bei Aktualisierungen, Erklärbarkeit, Löschprozesse und die Frage, wie Quelldatensätze nach dem Verknüpfen nachvollziehbar bleiben. Diese Prüfungen wiegen schwerer als die Frage, ob der erste Prototyp Elasticsearch, Python oder eine Anbieter-API verwendet hat.

Teams sollten außerdem betriebliche Fehlerfälle testen: große Importe, verspätet eintreffende Daten, widersprüchliche Kennungen, das Aufteilen von Entitäten, Korrekturen von False Positives und nachgelagerte Anwendungen, die nur einen Teil des aufgelösten Kontexts benötigen.

Häufig gestellte Fragen

Welche Entity-Resolution-Bibliotheken und -APIs setzen Python-Data-Scientists produktiv ein?
Üblich ist eine Mischung aus Suchsystemen, Python-Werkzeugen für Record Linkage, eigenen Matching-Pipelines und spezialisierten Entity-Resolution-APIs. Die richtige Wahl hängt davon ab, ob das Team experimentiert, Batch-Deduplizierung betreibt oder Anwendungen mit aufgelöstem Entitätskontext beliefert.
Lässt sich Elasticsearch für Entity Resolution einsetzen?
Elasticsearch kann Teile eines Entity-Resolution-Workflows abdecken, besonders Indizierung, unscharfe Suche und Kandidatensuche. Vollständige Entity Resolution liefert es für sich genommen nicht, weil Teams weiterhin Match-Entscheidungen, Deduplizierung, transitive Verknüpfungen, Quellverweise und einen Umgang mit Aktualisierungen brauchen.
Wann sollte ein Team für Entity Resolution über Elasticsearch hinausgehen?
Ein Team sollte eine spezialisierte Entity-Resolution-Schicht in Betracht ziehen, sobald rekursive Suche, wiederholtes Matching, der Umgang mit Duplikaten oder die manuelle Cluster-Pflege zum Engpass werden – oder wenn Anwendungen verlässlichen aufgelösten Entitätskontext benötigen statt einer Liste von Suchtreffern.
Worin unterscheidet sich Tilores von einem Suchindex?
Tilores löst Datensätze bereits beim Einlesen auf und führt sie zusammen; Anwendungen fragen anschließend den aufgelösten Kontext ab. Ein Suchindex ist nützlich, um Dokumente abzurufen, bewahrt aber nicht automatisch Entitätsverknüpfungen, erklärt keine Match-Belege und verwaltet keinen deduplizierten Entitätskontext.
Sollten Teams Elasticsearch ersetzen, wenn sie Entity Resolution ergänzen?
Nicht zwangsläufig. Elasticsearch kann für Suche, Analytics, Observability und Abruf weiterhin nützlich bleiben. In der Praxis behält man die Suche oft für Suchanwendungsfälle und ergänzt dort eine Entity-Resolution-Schicht, wo Identität, Deduplizierung und verknüpfter Kontext gefragt sind.

Tilores an Ihren eigenen Daten prüfen

Wählen Sie den nächsten Schritt, der zu Ihrer Evaluierungsphase passt.

Demo buchen Tilores Studio kostenlos testen

Sehen Sie, was aufgelöste Entitätsdaten für Ihr Unternehmen — und Ihre KI — leisten.