Was hat Elastic Search mit einer Datenbank zu tun?

5 Antworten

Elastic Search ist primär für das durchsuchen von Daten. Klar speichert man da auch Daten rein aber die will man eben in der Regel dann durch Suche wieder finden.

Vielleicht hast du durch Google ein falsches Bild, aber Elastic Search macht wirklich nur die Suche im Hintergrund, das passiert auch quasi wie bei Google aber Elastic Search ist natürlich keine Suchmaschine für Nutzer direkt sondern eine die man im Hintergrund ansteuert.

Klar kann man Elastic Search als Datenbank bezeichnen, aber Daten zu speichern ist eben nicht die Hauptaufgabe. Es gibt irgendwelche Punkte die andere Datenbanken besser machen als Elastic Search ich weiß aber nicht mehr detailiert welche das waren, jedenfalls ist man besser mit anderen Projekten beraten wenn man einfach eine Datenbank braucht aber keine Suche.

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops

Elastsic Search ist neu für mich nur soviel zu Suchmaschinen und Datenbanken:

Es wird daran geforscht, wie Suchmaschinen noch effizienter werden dadurch, dass versucht wird eine verschachtelte und mehrstufige Suche zu erreichen um beispielsweise eine Liste aller Amerikanischen Präsidenten mit einem "n" am Ende im Namen zu finden oder welches das günstigste Restaurant in der Nähe ist.

Eine Suchmaschine findet immer nur, was sie vorher bereits angesehen hat und indiziert hat in einer Datenbank. Das geschieht mit sog. Suchrobotern die wahllos allen Links folgen und die Metatags (Informationen die der Benutzer nur sieht, wenn er den Quelltext ansieht) der Seiten auslesen und vor zu in die Datenbank einträgt.

Eine Datenbank ist keine unstrukturierte Sammlung sondern hat immer Felder also Spalten. Eine Abfrage stellt Datensätze zusammen die den Suchkriterien entsprechen. Man hat SQL (Struktured Query Language) erfunden um sozusagen die Datenbank zu steuern und an die Daten zu kommen. Diese Sprache ist keine Programmiersprache, wird aber in fast jeder Sprache unterstützt.

SQL ist jedoch nicht die Speerspitze, es gibt auch andere Systeme aber es ist am gängigsten.

Woher ich das weiß:Berufserfahrung

Elasticsearch ist keine Suchmaschine in dem Sinne wie Google, DuckDuckGo oder Bing. Es ist ein Werkzeug, um sozusagen eine eigene Suche zu erstellen, ohne selbst alle Einträge zu indexieren.

Auf jeden Fall hat es kein Frontend wie eine gewöhnliche Suchmaschine, wo man einfach seine Suchanfrage eintippen kann...

ES geht regelmässig alle Einträge durch und indexiert diese. Meines Wissens wird dieser Index dann im RAM gespeichert. RAM ist natürlich um Welten schneller als normaler Festplattenspeicher. Deshalb kann ES dann auch blitzschnell Ergebnisse auch auf komplexere Suchanfragen geben.

Was ES auch noch auszeichnet: Skalierbarkeit. Da gehe ich jetzt aber nicht mehr ins Detail.

Als gewöhnliche Datenbank würde ich dies jetzt nicht gebrauchen, wenn ich aber eben eine schnelle Suche brauchen, wäre dies die richtige Wahl.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

Darkonia 
Fragesteller
 22.10.2021, 09:47

Danke für die Antwort, aber was heißt indexieren?

0
Lezurex  22.10.2021, 09:51
@Darkonia

Damit wird sozusagen ein Inhaltsverzeichnis deiner Einträge gemacht. Somit kann etwas schneller gefunden werden.

Stell es dir wie ein Lexikon vor. Dort hast du auch ein Inhaltsverzeichnis. Wenn du nach etwas suchst, blätterst du ja nicht durch jede einzelne Seite, sondern siehst im Inhaltsverzeichnis direkt, auf welcher Seite du das findest.

0
Darkonia 
Fragesteller
 22.10.2021, 10:15

Woher kommen denn überhaupt die Einträge?

0
Lezurex  22.10.2021, 10:46
@Darkonia

Beispiel: Ein Supermarkt hat eine Suche für sein Sortiment auf der Website. Diese Artikel sind natürlich auch schon irgendwo in einer anderen Datenbank gespeichert, wo auch stets Änderungen an Preisen, Beschreibungen, etc. vorgenommen werden.

Mittels eines Importer werden diese Artikel aus der Datenbank genommen, für Elasticsearch umgewandelt, falls nötig, und dann in Elasticsearch importiert. Dort wird dann wiederum ein Index erstellt.

Im Falle von Internetsuchmaschinen wie Google kommen diese Daten natürlich von Webscrapern, da es natürlich noch keine Datenbank mit allen Websites gibt.

0
Von Experte Mauritan bestätigt

Bei der Suche gibt es zwei Möglichkeiten.. Entweder der Suchauftrag durchsucht alle Orte, wenn man etwas finden will auf neue, oder die Suche erfolgt Zyklisch an den Speicherorten und ein Suchauftrag holt sich die Ergebnisse aus einer Datenbank, wo die zyklischen Suchen drin gespeichert werden. Das macht Windows sogar bei der Indizierung auf der Festplatte. Ist die Indizierung aktiv, werden zyklisch die Festplatteninhalte erfasst und Dateisuchen greifen vorrangig auf diese Indizierung, um schneller die Ergebnisse zu liefern... Eine Echtzeitsuche zeigt hingegen immer die aktuellsten Ergebnisse an, dauert aber länger. da bei jeder Suche alle Dateien gescannt werden müssen und nicht nur eine Datenbank gefiltert wird.

Onlinesuchmaschinen arbeiten wohl alle mit Datenbanken und zyklischen Hintergrundsuchen zur Aktualisierung, da eine Echtzeitdurchsuchung der Internetseiten bei jeder Suchanfrage in der kurzen Zeit gar nicht möglich wäre und einen enorm hohen Traffic verursachen würde...


Darkonia 
Fragesteller
 22.10.2021, 08:54

Was heißt Indizierung, ich hab im Internet gefunden, dass es irgendwie irgendwas mitteilt

0
RareDevil  22.10.2021, 08:57
@Darkonia

Eine Indizierung ist eine Aufnahme, Erstellen einer Liste... Ob in einer Textdatei oder in einer Datenbank ist erst mal egal... Im Beispiel von Windows werden die Dateieinträge also in einer Liste oder Datenbank geschrieben, weil diese schneller zu durchsuchen ist, wie die Festplatte selbst bei jeder Dateisuche zu durchsuchen...

1

Irgendwo werden die Ergebnisse ja gespeichert und das wird sehr wahrscheinlich in Datenbanken erfolgen

Woher ich das weiß:Hobby – Ich beschäftige mich schon seit ich jung bin mit Computern

Darkonia 
Fragesteller
 22.10.2021, 08:45

Ist Google auch eine Datenbank dann? Ist ja auch eine Suchmaschine

0
Mauritan  22.10.2021, 09:07
@Darkonia

Google ist eine Marke, die für eine Firma steht.

Dahinter gibt es zahllose EDV-Elemente.

0
Lezurex  22.10.2021, 09:10
@Darkonia

Google an sich ist keine Datenbank...

Klar, im Hintergrund benutzen die auch Datenbanken, da alles ja irgendwo gespeichert werden muss.

Ich könnte mir gut vorstellen, dass Google eine Eigenentwicklung von einer Art ES hat, welche Unmengen an RAM benötigt, damit die Suchergebnisse so schnell geladen werden können.

1
SylveonTribe  22.10.2021, 09:11
@Lezurex

Ich habe ja nicht gesagt das Google eine Datenabnk ist, sondern nur das Google die ergebnisse in einer Databnk speichert und ja google nutzt als Datenbank eine Eigenentwicklung, diese heißt Big Table

0
HarryXXX  22.10.2021, 09:15
@Darkonia

Hinter Google stecken mit Sicherheit viele grosse Datenbanken.

1