Einführung zu Elasticsearch
|
|
- Emilia Frei
- vor 8 Jahren
- Abrufe
Transkript
1 Fachbericht von Andreas Stotzer, Diso AG Einführung zu Elasticsearch Die Diso AG ist Mitglied der micdata Gruppe und entwickelt individuelle Softwareapplikationen, Cloud Systeme und (Big)Data Lösungen für Unternehmen aus dem privaten und öffentlichen Sektor in der Schweiz. Ein Artikel von Andreas Stotzer, Consultant und Elasticsearch Experte bei der Diso AG in Gümligen bei Bern. Weitere Informationen zur Diso AG finden Sie unter > Fragen zur Elasticsearch > Fragen zu relevanten Dienstleistungen der Diso AG an unsere Beratung Einleitung Die Suchfunktion ist aus vielen mobilen, Web- und Desktopanwendungen nicht mehr wegzudenken und wird immer mehr zur zentralen Komponente in unserem digitalen Alltag. Ein Benutzer eines mobilen Endgerätes etwa benutzt die Suchfunktionalität, um schnellen Zugriff auf Kontakte, Applikationen oder Musiktitel zu erhalten. Oder er beginnt seine Navigation im Internet durch das Eingeben eines Suchbegriffes in der Navigationsleiste des Webbrowsers. Kombiniert mit den Geolocation Features unseres Smartphones benutzen wir die standortbasierte Suche, um Points of Interest in unserer nächsten Umgebung zu suchen. Elasticsearch ist eine verteilte Volltext-Suchengine, die sich immer grösserer Beliebtheit erfreut. Bestimmt sind auch Sie schon indirekt mit Elasticsearch in Berührung gekommen. Zahlreiche namhafte Unternehmen wie LinkedIn, Xing oder GitHub setzen auf Elasticsearch, um ihre Anforderungen an eine hochverfügbare, skalierbare und performante Such-Engine abdecken zu können. Mit Elasticsearch können auch Sie Ihre Anwendung mit geringem Aufwand um eine vielseitige Suchkomponente erweitern. Zusammen mit Logstash und Kibana formt Elasticsearch den ELK-Stack, eine offene Plattform für die Verarbeitung, Speicherung, Auswertung und Visualisierung von Zeit- und Event-basierten Daten. Dieser Artikel gibt einen Überblick über Elasticsearch, beantwortet einige grundlegende Fragen und zeigt praktische Beispiele für den Einsatz dieser Technologie auf. Zudem zeigt er anhand eines Beispiels aus der Praxis wie die Schweizerische Post AG basierend auf Diso AG ( Seite 1 / 27
2 Elasticsearch erfolgreich eine Adress-Suche umgesetzt hat und welche Performanceverbesserungen der Einsatz von Elasticsearch eingebracht hat. Was ist Elasticsearch? Basierend auf Apache Lucene - einer bewährten Such-Engine für Java - stellt Elasticsearch eine Vielzahl von Möglichkeiten für Freitextabfragen, für die Indexierung von Daten, sowie für die Administration über eine HTTP / RESTful Schnittstelle zur Verfügung. Darüber hinaus erweitert Elasticsearch Lucene mit zusätzlichen Features wie Clustering und Monitoring. Auch erweiterte Werkzeuge für die Auswertung und Analyse der indexierten Daten (z.b. Aggregationen) werden zur Verfügung gestellt. Eines der mächtigsten Features ist die Cluster-Fähigkeit von Elasticsearch. Dabei werden die Such-Indizes auf mehrere Elasticsearch-Knoten verteilt, um eine bessere Suchperformance bei grosser Abfragelast sowie bessere Verfügbarkeit und Ausfallsicherheit zu erreichen. Trotz des grossen Funktionsumfanges von Elasticsearch legen die Entwickler viel Wert auf einfache Bedienung. So lässt sich beispielsweise mittels Autodiscovery automatisch ein Such-Cluster formieren: Sobald neue Knoten im Netzwerk vorhanden sind, werden diese automatisch in den Cluster-Verbund aufgenommen. Als Dokument-Format setzt Elasticsearch auf JSON. Da ein Index nicht zwingend auf einem Schema basieren muss, ist die Art der Daten die dort abgelegt werden irrelevant, seien dies strukturierte, unstrukturierte oder zeitbasierte Daten. Elasticsearch erlaubt es aber auch, mittels Schema Mappings festzulegen, wie die Daten in einem Index aussehen sollen. Dazu werden sämtliche gängigen Datentypen unterstützt, aber auch komplexe Typen wie Arrays, Objekte, Geo Point / Geo Shape und Attachements. Es ist auch möglich Relationen mit Parent - Child Mappings zu modellieren. Die Abfrage von Daten aus Elasticsearch erfolgt über eine eigene DSL, welche ebenfalls auf JSON basiert. Sie ist sehr mächtig, da sich Suchabfragen beliebig kombinieren lassen, und Features wie unscharfe (Fuzzy) oder phonetische Suche verwendet werden können. Die Such-API erlaubt es auch die Relevanz von Suchresultaten zu beeinflussen (Scoring), relevante Stellen in Suchresultaten zu markieren oder Suchresultate seitenweise abzufragen. Die Aggregations API bietet darüber hinaus die Möglichkeit Ihren Datenbestand aus einer "High-Level"-Perspektive zu betrachten, und dient somit als Basis für Auswertungen und Dashboards. Diso AG ( Seite 2 / 27
3 Logstash und Kibana Zur Vervollständigung des Themas wird nun aufgezeigt, wie Logstash und Kibana zusammen mit Elasticsearch genutzt werden können. Logstash Logstash ist ein Werkzeug welches es ermöglicht Daten oder Events aus beliebigen Quellsystemen zu lesen, zu manipulieren, zu transformieren und in einen persistenten Speicher (z.b. Elasticsearch) zu schreiben. Dabei steht nicht nur die Verarbeitung von Logdaten im Vordergrund, es können beliebige Zeit- oder Event-basierte Daten prozessiert werden. Aufgrund der Plugin-Architektur ist Logstash sehr flexibel und unterstützt eine Vielzahl möglicher Quell- und Zielsysteme. Sollte Logstash die Anforderungen nicht "out of the box" unterstützen, besteht auch die Möglichkeit, eigene Input- oder Output-Plugins mittels Java zu implementieren. Logstash ist nur eine von vielen Möglichkeiten wie Daten mittels Elasticsearch indexiert werden können. Weitere Informationen dazu erhalten Sie später in diesem Artikel. Kibana Kibana ist eine Browser-basierte Platform für die Auswertung und Visualisierung von Daten aus Elasticsearch. Mit Kibana können grosse Datenbestände auf einfache Art und Weise in einem grafischen Dashboard dargestellt werden. Dazu bietet Kibana die Möglichkeit von interaktiven Drilldowns und eine grosse Anzahl von Diagrammen, die für die Visualisierung der Daten verwendet werden können. Kombiniert mit Elasticsearch können mit wenigen Handgriffen individuelle Dashboards erstellt werden, welche eine völlig neue Sicht auf die Daten ermöglichen. Diso AG ( Seite 3 / 27
4 Folgende Grafik zeigt eine mögliche Anwendungsarchitektur unter der Verwendung von Logstash, Elasticsearch und Kibana und wie die einzelnen Komponenten dabei zusammenspielen: Was sind mögliche Anwendungsfälle für Elasticsearch? Der klassische Anwendungsfall für Elasticsearch ist die Freitextsuche. Daneben kann es aber auch im Analytics-Bereich eingesetzt werden, um grosse Datenbestände in near real time auszuwerten. Hier einige Beispiele für den Einsatz von Elasticsearch: Sie möchten Ihre Web- oder Mobile-Anwendung mit einer Suchfunktion erweitern, die dem Benutzer Features wie Autocomplete oder die Sortierung von Suchresultaten nach ihrer Relevanz bietet? Indexieren Sie Ihre Produkt- oder Kundendaten mit Elasticsearch und setzen Sie so die Grundlage für eine performante und vielseitige Freitextsuche in Ihrer Applikation. Sie möchten eine Mobile App entwickeln die anhand des aktuellen Standortes des Benutzers die nächstgelegenen Mikrobrauereien lokalisiert, diese auf einer Landkarte anzeigt oder anhand der Laufdistanz sortiert? Elasticsearch bietet vielfältige Möglichkeiten, um eine standortbasierte Suche umzusetzen. So können Daten bei der Indexierung beispielsweise mit Koordinaten angereichert und Suchresultate nach der Distanz zu einem bestimmten Standort gefiltert werden. Sie möchten die Logdaten Ihrer Enterprise-Anwendungen zentralisiert speichern und Auswertungen auf diesen Daten machen (z.b. wie oft wird die Funktionalität 'x' genutzt)? Nutzen Sie Logstash um die Daten von mehreren Quellsystemen zu sammeln und für die Suche und Auswertung mittels Elasticsearch zu indexieren. Erstellen Sie mittels Elasticsearch Query DSL Auswertungen, die es Ihnen ermöglichen, rasch auf unvorhergesehene Situationen zu reagieren und so Ihre Systeme zu optimieren. Diso AG ( Seite 4 / 27
5 Sie möchten Transaktionsdaten auswerten und analysieren, um gewisse Trends und Abweichungen sichtbar zu machen, oder Sie möchten Statistiken und ad-hoc Abfragen auf grossen Datenbeständen durchführen, um Ihre Anforderungen im Bereich Business Intelligence / Advanced Analytics zu erfüllen? Nutzen Sie auch hierfür Logstash als Werkzeug für die Transformation und Bereitstellung Ihrer Daten in Elasticsearch. Setzen Sie zudem auf Kibana um die Daten in einer interaktiven, grafischen Oberfläche zu visualisieren und auszuwerten, sowie auf Elasticsearch Aggregations, die es Ihnen ermöglichen komplexe BI-Abfragen durchzuführen. Welchen Nutzen bringt Elasticsearch in Unternehmen oder Anwendungen? Open Source und Verwendung gängiger Protokolle Sämtliche Schnittstellen von Elasticsearch basieren auf standardisierten Protokollen (HTTP und REST) und verwenden JSON als Datenformat. Dies hat den Vorteil, dass für die Indexierung oder für die Abfrage von Daten keine proprietäre Sprache oder Syntax erlernt oder spezielle Software eingesetzt werden muss. Benutzer die bereits mit REST- Schnittstellen und JSON vertraut sind, erlernen die API's relativ schnell. Um Suchabfragen auszuführen und zu testen kann zum Beispiel ein Webbrowser verwendet werden. Elasticsearch basiert auf Java und ist Open Source Software (Apache 2 Lizenz). Sollten Sie Sich also für den Einsatz von Elasticsearch für Ihr Unternehmen entscheiden, fallen keine zusätzlichen Lizenzkosten an. Die User-Community von Elasticsearch ist sehr aktiv, auf Blogs wie beispielsweise finden Sie zahlreiche Artikel, Tutorials, etc. zum Thema. Sollte für den Einsatz von Elasticsearch kommerzieller Support benötigt werden, bietet elastic - die Firma hinter Elasticsearch - entsprechende Pakete mit Web-, Mail- und Telefonsupport sowie Emergency Patches an. Ready for the Cloud Ihr Unternehmen setzt auf eine Cloud-Infrastruktur und Sie möchten Elasticsearch ebenfalls in der Cloud einsetzen? Elasticsearch bietet Discovery Module für Amazon EC2 oder Google Compute an, die den Betrieb eines Elasticsearch Clusters auf diesen Plattformen ermöglichen. Dazu gibt es mehrere Anbieter für hosted Elasticsearch Lösungen wie zum Beispiel found ( Der Einsatz von Elasticsearch in der Cloud bietet Ihnen zusätzliche Vorteile wie: Diso AG ( Seite 5 / 27
6 Kostenersparnis, da Sie keine eigene Infrastruktur benötigen und nur die Ressourcen bezahlen welche Sie auch wirklich benötigen "Scale as needed": Der Elasticsearch Cluster kann rasch durch zusätzliche Instanzen erweitert werden um Performance-Engpässe oder temporär erhöhte Last zu bewältigen Integration mit bestehenden Systemen Elasticsearch kann sehr gut in bestehende Systeme integriert werden. Daten können aus verschiedenen Quellsystemen (Fachapplikation, Data Warehouse, ERP, etc.) zusammengetragen und in einer Elasticsearch-Instanz gespeichert werden. So kann ein zentraler "Hub" für die Suche und Analyse von Geschäftsdaten geschaffen werden. Neben den erwähnten HTTP / REST-Schnittstellen bietet Elasticsearch zudem eine grosse Menge alternativer Clients beispielsweise für Java, JavaScript, Python oder.net an. Diese ermöglichen es, Elasticsearch problemlos in eine vorhandene Systemlandschaft zu integrieren. Skalierbarkeit Elasticsearch setzt auf die vertikale Skalierbarkeit (scale out). Bei schnell wachsenden Datenmengen kann ein Such-Cluster problemlos durch das Hinzufügen neuer Hardware- Systeme oder Cloud-Instanzen erweitert werden. Diese Anforderung ist insbesondere im Big Data Umfeld sehr wichtig, wo rasch wachsende Datenmengen ein enormes Potential für ein Unternehmen bieten, aber deren Verarbeitung, Auswertung etc. eben auch eine grosse Herausforderung darstellen kann. Die Cluster-Features sind sehr robust und einfach zu verwenden. Neue Knoten werden im Netzwerk automatisch erkannt, zu dem Cluster hinzugefügt und die Such-Indizes automatisch neu verteilt, damit der neue Knoten genutzt werden kann. Ausfallsicherheit und Verfügbarkeit Durch die Cluster-Fähigkeit von Elasticsearch wird auch eine bessere Ausfallsicherheit und Verfügbarkeit erreicht. Elasticsearch nutzt Sharding (horizontale Partitionierung), das heisst Partitionen der Daten werden auf mehrere Knoten repliziert. Durch diese Redundanz wird beim Ausfall eines oder mehrerer Knoten sichergestellt, dass immer alle Daten verfügbar Diso AG ( Seite 6 / 27
7 sind und kein Datenverlust entsteht. Für den Benutzer ist das Sharding bei der Indexierung und bei der Suche völlig transparent. Ein Dokument wird beispielsweise immer zuerst auf einem primären Shard indexiert und danach automatisch auf die Replikate kopiert. Fällt ein Knoten des Clusters durch einen Hardwaredefekt aus, kann dessen Arbeit von einem Standby-Knoten übernommen werden. Durch das automatische "rebalancing" des Clusters passiert dies im besten Fall so, dass Endbenutzer gar nichts von dem Systemausfall merken. Suchperformance Elasticsearch ist von Grund auf dazu ausgelegt, enormen Durchsatz bei Suchabfragen zu erreichen, auch bei massiven Datenmengen. Hierfür tragen einerseits der Inverted Index von Lucene, andererseits aber auch die verteilte Architektur von Elasticsearch bei. Durch die Verteilung auf mehrere Knoten können die Ressourcen mehrerer Systeme optimal genutzt werden, um eine bessere Performance zu erreichen. Und auch hier gilt: Treten Performance-Engpässe auf, können diese durch die Erweiterung des Such-Clusters um weitere Knoten problemlos entschärft werden, da Elasticsearch linear skaliert. Index, Typen, Dokumente und Mappings Ein Elasticsearch Index kann aus einem oder mehreren Dokument-Typen bestehen. Jeder Typ hat sein eigenes Mapping und beschreibt eine Sammlung ähnlicher Dokumente. Ähnlich wie bei einer relationalen Datenbank beschreibt das Mapping die Attribute die ein Dokument haben kann, und welche Datentypen diese verwenden. Elasticsearch unterstützt die folgenden Datentypen: Core Types (String, Number, Boolean, Date) Arrays Objekte IP Geo Point Geo Shape Attachments (Binäre Dokumente wie MS Office, PDF, usw.) Daten können in Elasticsearch schemafrei abgelegt werden. Dieser Ansatz ist vor allem für Diso AG ( Seite 7 / 27
8 Anwendungsfälle im Big Data Umfeld interessant. Elasticsearch verwendet dazu dynamische Schema Mappings: Wird ein Dokument eines noch unbekannten Typs indexiert, wird basierend auf dessen Inhalt ein neuer Dokument-Typ angelegt (dasselbe gilt für Indizes). Bei bestehenden Typen können zudem dynamisch neue Attribute hinzugefügt werden, wobei Elasticsearch automatisch den korrekten Datentyp ermittelt. Elasticsearch verwendet per default dynamisches Mapping. Je nach Use Case ist es aber empfehlenswert, explizite Mappings zu definieren und so genau festzulegen, aus welchen Typen ein Index besteht und welche Attribute ein bestimmter Typ hat. Denn grundsätzlich gilt: Je genauer die Daten sind, desto genauer sind später die Suchresultate bei Abfragen und Auswertungen. Durch das Schema Mapping wird auch festgelegt, welche Attribute für die Freitextsuche indexiert und welche Algorithmen für die Textanalyse und Tokenization angewandt werden sollen. Hier ein einfaches Beispiel eines Schema Mappings, das später auch für die Demonstration der Indexierungs- und Abfragefunktionalitäten von Elasticsearch verwenden wird: "brewery": "dynamic": "strict", "properties": "name": "type": "string", "phone": "type": "string", "index": "no", " ": "type": "string", "homepage": "type": "string", "street": "type": "string", "city": "type": "string", "zip": "type": "integer", "index": "not_analyzed", "state": "type": "string", "registered": "type": "date", "format": "YYYY-MM-dd", "specialities": "properties": "type": "type": "string", "index": "not_analyzed", "blend": "type": "string", "strength": "type": "float" Diso AG ( Seite 8 / 27
9 Dieses Beispiel definiert den Typ "brewery" mit einer Liste von Attributen. Dabei ist folgendes interessant: Die Datentypen String, Integer, Date, Float und Array werden verwendet Durch die Option "dynamic": "strict" wird verhindert dass der Typ "brewery" dynamisch erweitert werden kann (dies würde bei der Indexierung zu einem Fehler führen) Das Attribut "phone" verwendet die Option "index": no. Dadurch wird festgelegt dass dieses Attribut nicht indexiert wird und später keine Abfragen auf diesem Feld gemacht werden können Die Attribute "zip" und "type" verwenden die Option "index": not_analyzed. Dies bedeutet dass diese zwar indexiert werden, aber ohne die Verwendung von String Tokenization oder Analyzern Alle anderen Attribute verwenden für die Indexierung den globalen Default Analyzer Das Attribut "registered" verwendet das Datumsformat "YYYY-MM-dd" Das Attribut "specialities" ist ein Array von Objekten Sobald ein JSON-Schema definiert wurde, kann ein leerer Index erstellt werden und brewery als Typ für diesen Index hinzugefügt werden. Dafür kann ein beliebiger HTTP / REST Client verwendet werden, in diesem Fall curl: # Erstellt einen leeren Index mit dem Namen 'breweries' $ curl -XPUT ' "acknowledged":true # Fügt den Typ 'brewery' zu dem leeren Index hinzu $ curl -XPUT ' "acknowledged":true Diso AG ( Seite 9 / 27
10 Tipp: Dynamische Mappings Dynamische Mappings eignen sich hervorragend um - basierend auf einem JSON- Dokument - einen Index zu erstellen, welcher beispielsweise als Prototyp verwendet werden kann. Dazu kann einfach ein beliebiges JSON-Dokument indexiert werden, und Elasticsearch erstellt - basierend auf dessen Inhalt - ein dynamisches Mapping. Dieses kann später optimiert und den individuellen Anforderungen angepasst werden. Tokenization und Wortverarbeitung Elasticsearch resp. Lucene basiert auf einem Inverted Index, dem Grund-Konzept das die performante Feitextsuche ermöglicht. Ein Inverted Index besteht aus einer eindeutigen Liste der Worte (Terms oder Tokens), die in allen Dokumenten innerhalb eines Indexes vorkommen, dem Term-Dictionary. Jeder Term im Dictionary referenziert zudem die Dokumente in welchem er vorkommt, ein Beispiel: Die Ausgangslage besteht aus folgenden Dokumenten: Doc 1: "it is what it is" Doc 2: "what is it" Doc 3: "it is a microbrewery" Ein Inverted Index wird erstellt, indem die drei Dokumente in einzelne Terme aufgeteilt,(tokenizing), in einer sortierten Liste abgelegt und mit den Dokumenten verknüpft werden: Term Doc 1 Doc 2 Doc 3 a x is x x x it x x x microbrewery x what x x Diso AG ( Seite 10 / 27
11 Werden nun bestimmte Begriffe abgefragt, braucht Elasticsearch diese nur noch im Term- Dictionary aufzusuchen um die Referenzen zu den Dokumenten zu erhalten, die diese enthalten. Diese Strategie ist gerade beim Durchsuchen grosser Datenmengen sehr effizient. Bei der Indexierung wird also immer der Prozess der Tokenization und Wortverarbeitung durchlaufen. Die Möglichkeiten, so die Indexierung und später auch die Suche zu beeinflussen und zu optimieren sind sehr vielfältig. Anwendungsbeispiele: Text in einzelne Terme segmentieren Sonderzeichen und Whitespace entfernen Terme in Lowercase umwandeln Terme welche den selben Wortstamm haben, so indexieren, dass in obigem Beispiel sowohl "microbrewery" wie auch "microbreweries" zu einem Treffer führen würden Synonyme indexieren, beispielsweise "brewhouse" für "microbrewery" Entfernen von Stopwords welche für die Suche nicht relevant sind (z.b. der, die, das) Input für die phonetische Suche aufbereiten Es gibt Fälle in denen es aber auch Sinn machen kann, einen Term ohne Manipulation abzulegen. Etwa wurde im Beispiel im letzten Kapitel das Attribut "zip" mit der Option "index": "not_analyzed" definiert, da dieses nur Postleitzahlen enthalten kann. Durch diese Option werden Werte in diesem Feld als Keyword unsegmentiert im Index abgelegt und können dennoch für die Suche verwendet werden. Dies kann beispielsweise auch für die Optimierung eines Indexes für Autocompletion von Nutzen sein. Defaultmässig verwendet Elasticsearch einen Tokenizer, der die Unicode Text Segmentierung verwendet, um Phrasen in einzelne Tokens zu zerlegen, und einen Analyzer, welcher keine erweiterte Wortverarbeitung wie das Entfernen von Stopwords vornimmt. Dieses Verhalten kann pro Dokument-Typ im Index überschrieben und beispielsweise mit eigenen Tokenizern oder Analyzern erweitert werden. Sehr wichtig ist in diesem Zusammenhang zu erwähnen, dass für die Indexierung und für die Suche immer die gleichen Analyzer und Tokenizer verwendet werden sollten, um optimale Suchergebnisse zu erzielen. Diso AG ( Seite 11 / 27
12 Input und Output von Daten CRUD-Operationen mit Elasticsearch Das Hinzufügen, Modifizieren und Löschen von Dokumenten in einem Elasticsearch Index erfolgt über die Document API. Um ein Dokument im "breweries" Index abzulegen, wird folgender Befehl verwendet: $ curl -XPUT ' -d ' "name": "Mcintyres Irish Pub", "phone": "+1 (832) ", " ": "lee@mcintyreirishpub.com", "homepage": " "street": "153 Ridgewood Avenue", "city": "Kraemer", "zip": 8648, "state": "Connecticut", "registered": " ", "specialities": [ "blend": "Est Red Ale", "strength": 5.4, "blend": "Proident Red Ale", "strength": 5.4, "blend": "Quis Lager", "strength": 4.6, "blend": "Nostrud Lager", "strength": 4.5, "blend": "Commodo Golden Ale", "strength": 4.6 ] ' "_index":"breweries","_type":"brewery","_id":"1","_version":1,"created":true Diso AG ( Seite 12 / 27
13 In der URL wird der Index spezifiziert in welchem das Dokument abgelegt werden soll ("breweries"), der Typ welcher verwendet werden soll ( brewery") sowie die ID des Dokumentes (1). Jedes Dokument in Elasticsearch hat eine eindeutige ID, die entweder wie in unserem Beispiel manuell vergeben oder generiert werden kann (dafür muss POST anstelle von PUT verwendet werden). Die Response des Index-Requests zeigt, dass Elasticsearch das Dokument automatisch mit einer Version versehen hat. Diese kann für optimistisches Locking verwendet werden, um bei Updates Schreib-Konsistenz zu gewährleisten. Ähnlich kann auch ein Dokument von Elasticsearch anhand der ID abgefragt werden: $ curl -XGET ' "_index" : "breweries", "_type" : "brewery", "_id" : "1", "_version" : 1, "found" : true, "_source": "name": "Mcintyres Irish Pub", "phone": "+1 (832) ", " ": "lee@mcintyreirishpub.com", "homepage": " "street": "153 Ridgewood Avenue", "city": "Kraemer", "zip": 8648, "state": "Connecticut", "registered": " ", "specialities": [ "blend": "Est Red Ale", "strength": 5.4, "blend": "Proident Red Ale", "strength": 5.4, "blend": "Quis Lager", "strength": 4.6, "blend": "Nostrud Lager", "strength": 4.5, "blend": "Commodo Golden Ale", "strength": 4.6 ] Diso AG ( Seite 13 / 27
14 Dieser Request gibt das Dokument zurück, welches wir vorher mit der ID "1" indexiert haben. Das Dokument wurde von Elasticsearch mit gewissen Metadaten (Index, Typ, etc.) erweitert. Interessant ist das Attribut "_source", die Speicherung der Daten in Elasticsearch geschieht in zwei Schritten: 1. Der Input wird für die Suche indexiert, also Tokenized und in einem Lucene Index abgelegt. Pro Attribut kann festgelegt werden ob es indexiert werden soll. 2. Das Quell-Dokument wird in einem speziellen Feld im Index abgelegt, damit dieses später bei Suchabfragen wieder verfügbar ist. Dafür verwendet Elasticsearch das Attribut "_source", dieses wird per Default automatisch für jedes indexierte Dokument erstellt. Um ein Dokument zu aktualisieren wird die POST-Methode verwendet, es müssen nur die Attribute des Dokumentes mitgegeben werden, die aktualisiert werden sollen: $ curl -XPOST ' -d ' "doc": " ": "sam@mcintyreirishpub.com" ' "_index":"breweries","_type":"brewery","_id":"1","_version":2 Ein Dokument kann wie folgt gelöscht werden: $ curl -XDELETE ' "found":true,"_index":"breweries","_type":"brewery","_id":"1","_version":3 Bulk-API Werden grosse Datenmengen indexiert, ist es wenig effizient, für jedes Dokument einen API-Call zu machen, da dies zu einen massiven Overhead und zu einer schlechten Performance bei der Indexierung führen würde. Um Dokumente in Stapeln zu indexieren, bietet Elasticsearch die Bulk-API. Damit lassen sich CRUD-Operationen beliebig kombinieren und in einem einzelnen Aufruf ausführen (siehe nächste Seite): Diso AG ( Seite 14 / 27
15 $ curl -XPOST ' -d ' "index": "_index": "breweries","_type": "brewery","_id": 2 "name": "Gentrys Irish Pub","phone": "+1 (825) "," ": "sonya@gentrysirishpub.com","homepage": " "index": "_index": "breweries","_type": "brewery","_id": 3 "name": "Fords Tavern","phone": "+1 (918) "," ": "dionne@fordstavern.com","homepage": " "delete": "_index": "breweries", "_type": "brewery", "_id": "1" Mit diesem Request werden drei Operationen ausgeführt: Die Dokumente mit den ID's "2" und "3" werden indexiert Das Dokument mit der ID "1" wird gelöscht Bei Bulk Operationen ist die spezielle Struktur zu beachten, da es sich nicht um valides JSON handelt. Ein Bulk-Request besteht immer aus einer Zeile Metadaten mit welcher festgelegt wird, ob ein Dokument indexiert, aktualisiert oder gelöscht werden soll, sowie weiteren Metadaten wie Index, Dokument-Typ und ID. In der zweiten Zeile werden dann die eigentlichen Daten geschickt. Bei der Indexierung ist dies das komplette Dokument, bei Updates sind es nur die Attribute, die aktualisiert werden sollen. Einzige Ausnahme ist das Löschen von Dokumenten, dort muss bloss die ID des zu löschenden Dokumentes definiert werden. Alternativen zu der REST-API Durch die grosse Anzahl vorhandener Clients für Elasticsearch bietet sich auch eine Vielzahl möglicher Szenarien um Daten zu indexieren. Soll Elasticsearch in einer Java / Java EE Applikation integriert werden, kann der Java Client verwendet werden, welcher sämtliche Features der REST-API ebenfalls unterstützt. Daneben gibt es offizielle von Elasticsearch unterhaltene Clients, beispielsweise für JavaScript, Python oder.net, oder Sie nutzen Logstash für die Konfiguration einer flexiblen Index-Pipeline. Diso AG ( Seite 15 / 27
16 Tipp: Generieren von Elasticsearch Bulks aus JSON Um JSON-Input in Elasticsearch Index-Bulks zu konvertieren und in Elasticsearch zu laden, kann z.b. jq verwendet werden (ein Command Line Processor für JSON). Folgender Befehl liest eine JSON-Datei, fügt für jeden Eintrag im Array "data" die Metadaten für die Indexierung hinzu und schickt die Daten anschliessend zur Bulk-Indexierung an Elasticsearch. In diesem Fall werden die ID's von Elasticsearch automatisch generiert da sie nicht explizit definiert werden: cat breweries.json jq -c '.data[] "index": "_index": "breweries", "_type": "brewery",.' \ curl -XPOST Daten abfragen Elasticsearch Query DSL Dokumente werden bei der Speicherung entweder manuell oder automatisch mit einer ID versehen. Anhand dieser ID können Dokumente wieder geladen und Elasticsearch so als Key- / Value-Store verwendet werden. Dokumente werden aber nicht bloss abgespeichert, sondern deren Inhalt wird für die Freitextsuche auch indexiert. Elasticsearch bietet sehr vielfältige Möglichkeiten für die Abfrage von Daten und für das Filtern von Suchresultaten. Die Abfragesprache von Elasticsearch (Elasticsearch Query DSL) bietet eine Vielzahl verschiedener Typen von Queries und Filtern. Mit ihr lassen sich sehr komplexe Abfragen formulieren, welche einerseits für die Freitextsuche, andererseits auch für die strukturierte Suche verwendet werden können. Einige Key-Features der Elasticsearch Query DSL: Abfrage von exakten Werten mittels Term(s) Query oder von Ranges mittels Range Query. Dies ist insbesondere für die Suche von strukturierten Daten nützlich Freitextabfragen mittels Match Query. Bei diesen Abfragen wird der Input analog der Indexierung tokenized, analysiert und so die Volltextsuche ermöglicht. Bei Match-Abfragen kann unter anderem konfiguriert werden wie die einzelnen Terme verknüpft werden sollen (AND / OR) Kombinierte Freitextabfragen auf mehrere Attribute mittels Multi Match Query Beliebig komplexe Kombination mehrerer Abfragen mittels boolschen Ausdrücken Diso AG ( Seite 16 / 27
17 (Bool Query). Dabei kann definiert werden welche Teile einer Abfrage obligatorisch und welche optional sind Matching von Phrasen mittels Match Phrase Query, wobei nicht nur einzelne Terme, sondern auch deren Reihenfolge berücksichtigt werden Partielles Matching mittels Prefix Query oder Wildcard Query. Dies ist z.b. nützlich für Autocompletion Suche anhand von regulären Ausdrücken mittels Regexp Query Unscharfe Suche mittels Fuzzy Query unter Verwendung der Levenshtein Editierdistanz Steuerung der Relevanz von Suchresultaten mittels Boost, um Teile einer Abfrage höher zu gewichten Zusätzlich zu den erwähnten Queries bietet Elasticsearch auch das Konzept von Filtern an. Filter unterscheiden sich insofern von Queries, dass diese grundsätzlich nur prüfen ob ein Dokument eine gewisse Bedingung erfüllt oder nicht (true / false). Sie werden vor der eigentlichen Suche ausgeführt um die Liste zu durchsuchender Dokumente einzuschränken. Für die Freitextsuche sind sie daher irrelevant. Analog der erwähnten Abfragetypen gibt es unter anderem auch Bool Filter, Term(s) Filter und Range Filter. Richtig eingesetzt sind Filter wesentlich performanter als Queries, da diese von Elasticsearch gecached werden können. Ein weiterer Unterschied von Filtern ist, dass diese die Relevanz (Score) der Suchresultate nicht beeinflussen. Ein einfaches Beispiel einer Elasticsearch Abfrage (siehe nächste Seite): Diso AG ( Seite 17 / 27
18 POST breweries/_search "size": 5, "query": "bool": "must": [ "match": "name": "query": "glenns brewhouse", "operator": "AND" ], "should": [ "match": "state": "tenesse" ] Folgendes ist bei diesem Beispiel interessant: Es werden zwei Match-Abfragen mittels einer Boolschen Abfrage verknüpft Der erste Teil der Abfrage ist obligatorisch (must) Der zweite Teil der Abfrage ist optional (should), diese Suche würde also z.b. auch "glenns brewhouse" in New York als Resultat zurückgeben Bei der ersten Abfrage werden die einzelnen Terme mittels AND verknüpft, d.h. gültige Dokumente müssen die Terme "glenns" und "brewhouse" enthalten Da die Felder "name" und "state" den Standard Analyzer verwenden ist die Gross- / Kleinschreibung irrelevant Durch die (optionale) Angabe von "size": 5 beschränken wir die Anzahl der Suchresultate auf fünf Elemente (analog funktioniert auch das Paging mittels der Attribute "from" / "to") Sowohl die Top-Level Abfrage als auch die Sub-Abfragen können beliebig mit weiteren Queries und Filtern erweitert werden Als Endpoint für die Suche wurde breweries/_search verwendet. Abfragen können auf einzelne oder mehrere Indizes und Typen oder sogar auf alle Indizes einer Elasticsearch Instanz angewendet werden Die Suchresultate werden von Elasticsearch als Array von JSON-Objekten zurückgegeben. Diso AG ( Seite 18 / 27
19 Das Resultat enthält Metadaten wie Dauer der Ausführung der Abfrage oder Anzahl gefundener Suchresultate. Zudem werden für jedes Suchresultat Relevanz, Index und Typ sowie das ursprünglich indexierte JSON Dokument (_source) zurückgegeben: "took": 2, "timed_out": false, "_shards": "total": 5, "successful": 5, "failed": 0, "hits": "total": 1, "max_score": , "hits": [ "_index": "breweries", "_type": "brewery", "_id": "AU2vU-3NjZin0-753w33", "_score": , "_source": "name": "Glenns Brewhouse", "phone": "+1 (899) ", " ": "ayers@glennsbrewhouse.com", "homepage": " "street": "719 Monitor Street", "city": "Madaket", "zip": 7027, "state": "Tennessee", "registered": " ", "specialities": [ "type": "Lager", "blend": "Commodo Lager", "strength": 4.6, "type": "Stout", "blend": "Officia Stout", "strength": 4.8, "type": "Brown Ale", "blend": "Mollit Brown Ale", "strength": 4.9, "type": "Stout", "blend": "Mollit Stout", "strength": 6.3 ] ] Diso AG ( Seite 19 / 27
20 Aggregations API Im Gegenteil zu der normalen Suche, bei welcher die Resultate immer möglichst präzis eingeschränkt werden und eine Abfrage im besten Fall nur wenige Resultate liefern soll, bietet die Aggregations API eine "High Level" Übersicht über eine Datensammlung. Beispielsweise können Aggregationen Fragen wie die folgenden beantworten: Welches ist die am meisten produzierte Biersorte aller indexierten Mikrobrauereien? Was ist der durchschnittliche Alkoholgehalt des produzierten Bieres? In welcher Stadt gibt es die meisten Mikrobrauereien? Mit Aggregations können also sehr spezifische Auswertungen gemacht werden, diese Funktionalität ist gerade für Dashboards und Reporting sehr interessant. Aggregationen können mit normalen Such-Requests kombiniert werden, dies erlaubt es auch Auswertungen auf einem bestimmten Sub-Set von Daten auszuführen. Auch hier nutzt Elasticsearch das Konzept des Inverted Index. Aggregationen sind daher sehr performant und werden wie Such-Abfragen in "Near Real Time" ausgeführt. Elasticsearch stellt eine ganze Reihe verschiedener Typen von Aggregationen zur Verfügung, z.b min, max, sum, avg oder stats für die Berechnung von Metriken, oder Terms für die Aggregation von Dokumenten anhand eines bestimmten Termes. Ein einfaches Beispiel einer metrischen Aggregation: POST breweries/_search?search_type=count "aggregations": "avg_strength": "avg": "field": "specialities.strength" Diso AG ( Seite 20 / 27
SANDBOXIE konfigurieren
SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:
MehrHandbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen
MehrDehnbarer Begriff Verteiltes Suchen mit Elasticsearch
Dehnbarer Begriff Verteiltes Suchen mit Elasticsearch Dr. Halil-Cem Gürsoy halil-cem.guersoy@adesso.de www.adesso.de ...über mich 15 Jahre Entwicklung und Beratung 'Software Architect' bei adesso AG, Dortmund
MehrUmsetzung von BI-Lösungen mit Unterstützung einer Suchmaschine. TDWI Stuttgart 15.04.2015 Tobias Kraft, exensio GmbH
Umsetzung von BI-Lösungen mit Unterstützung einer Suchmaschine TDWI Stuttgart 15.04.2015 Tobias Kraft, exensio GmbH Suchmaschinen Elasticsearch BI-Stack mit Elasticsearch Use Cases Pharmabranche 2 Funktionen
Mehrdesign kommunikation development
http://www.dkd.de dkd design kommunikation development Apache Solr - A deeper look Stefan Sprenger, Developer dkd Olivier Dobberkau, Geschäftsführer dkd Agenda Einführung Boosting Empfehlungen Ausblick
MehrBenutzeranleitung Superadmin Tool
Benutzeranleitung Inhalt 1 Einleitung & Voraussetzungen... 2 2 Aufruf des... 3 3 Konto für neuen Benutzer erstellen... 3 4 Services einem Konto hinzufügen... 5 5 Benutzer über neues Konto informieren...
MehrSuche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
MehrInhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
MehrIhre Interessentendatensätze bei inobroker. 1. Interessentendatensätze
Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit
MehrFachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
MehrFlorian Hopf www.florian-hopf.de @fhopf. elasticsearch. Bern 07.10.2015
Florian Hopf www.florian-hopf.de @fhopf elasticsearch. Bern 07.10.2015 Agenda Suche Verteilung Elasticsearch und Java Aggregationen Zentralisiertes Logging Suche Installation # download archive wget https://download.elastic.co/elasticsearch
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
MehrDiese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.
Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,
MehrEr musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt
Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen
Mehr:: Anleitung Hosting Server 1cloud.ch ::
:: one source ag :: Technopark Luzern :: D4 Platz 4 :: CH-6039 Root-Längenbold LU :: :: Fon +41 41 451 01 11 :: Fax +41 41 451 01 09 :: info@one-source.ch :: www.one-source.ch :: :: Anleitung Hosting Server
Mehr1. Einschränkung für Mac-User ohne Office 365. 2. Dokumente hochladen, teilen und bearbeiten
1. Einschränkung für Mac-User ohne Office 365 Mac-User ohne Office 365 müssen die Dateien herunterladen; sie können die Dateien nicht direkt öffnen und bearbeiten. Wenn die Datei heruntergeladen wurde,
MehrOS Anwendungsbeschreibung
Inhalt Einleitung... 2 Start des Programms... 2 Scannen einer neuen Zeitungsseite... 4 Presse-Clipping... 8 Artikel ausschneiden und bearbeiten... 11 Übernahme aus der Zwischenablage... 19 Ausdruck in
MehrAlbert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen
Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.
MehrLizenzen auschecken. Was ist zu tun?
Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.
MehrKURZANLEITUNG CLOUD OBJECT STORAGE
KURZANLEITUNG CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung... Seite 03 2. Anmelden am Cloud&Heat Dashboard... Seite 04 3. Anlegen eines Containers... Seite 05
MehrIAWWeb PDFManager. - Kurzanleitung -
IAWWeb PDFManager - Kurzanleitung - 1. Einleitung Dieses Dokument beschreibt kurz die grundlegenden Funktionen des PDFManager. Der PDF Manager dient zur Pflege des Dokumentenbestandes. Er kann über die
MehrWeb-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter
Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................
MehrUrlaubsregel in David
Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5
Mehretermin Einbindung in Outlook
etermin Einbindung in Outlook 1. Einführung Über etermin gebuchte Termine können bei Bedarf auch mit externen Terminkalendern, wie zum Beispiel Outlook, ical oder Google synchronisiert werden. Dieses Dokument
MehrZur Bestätigung wird je nach Anmeldung (Benutzer oder Administrator) eine Meldung angezeigt:
K U R Z A N L E I T U N G D A S R Z L WE B - P O R T A L D E R R Z L N E W S L E T T E R ( I N F O - M A I L ) RZL Software GmbH Riedauer Straße 15 4910 Ried im Innkreis Version: 11. Juni 2012 / mw Bitte
MehrS TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E
S TAND N OVEMBE R 2012 HANDBUCH T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E Herausgeber Referat Informationstechnologie in der Landeskirche und im Oberkirchenrat Evangelischer Oberkirchenrat
MehrUniversal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.
ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf
Mehr2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein
Einrichtung von orgamax-mobil Um die App orgamax Heute auf Ihrem Smartphone nutzen zu können, ist eine einmalige Einrichtung auf Ihrem orgamax Rechner (bei Einzelplatz) oder Ihrem orgamax Server (Mehrplatz)
MehrAnleitung zum erfassen von Last Minute Angeboten und Stellenangebote
Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Zweck dieser Anleitung ist es einen kleinen Überblick über die Funktion Last Minute auf Swisshotelportal zu erhalten. Für das erstellen
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
MehrFlorian Hopf www.florian-hopf.de @fhopf. elasticsearch.
Florian Hopf www.florian-hopf.de @fhopf elasticsearch. Agenda Suche Verteilung Elasticsearch und Java Aggregationen Zentralisiertes Logging Suche Suche Installation # download archive wget https://download.elastic.co/elasticsearch
MehrTutorial - www.root13.de
Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk
MehrKleines Handbuch zur Fotogalerie der Pixel AG
1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link
MehrMicrosoft SharePoint 2013 Designer
Microsoft SharePoint 2013 Designer Was ist SharePoint? SharePoint Designer 2013 Vorteile SharePoint Designer Funktionen.Net 4.0 Workflow Infrastruktur Integration von Stages Visuelle Designer Copy & Paste
MehrEinrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me
Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte
MehrInhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. 7 Key Features.
Inhalt 1 Übersicht 2 Anwendungsbeispiele 3 Einsatzgebiete 4 Systemanforderungen 5 Lizenzierung 6 Installation 7 Key Features Seite 2 von 11 1. Übersicht MIK.mobile for ipad ist eine Business Intelligence
MehrWindows Server 2012 RC2 konfigurieren
Windows Server 2012 RC2 konfigurieren Kurzanleitung um einen Windows Server 2012 als Primären Domänencontroller einzurichten. Vorbereitung und Voraussetzungen In NT 4 Zeiten, konnte man bei der Installation
MehrInformationen zum neuen Studmail häufige Fragen
1 Stand: 15.01.2013 Informationen zum neuen Studmail häufige Fragen (Dokument wird bei Bedarf laufend erweitert) Problem: Einloggen funktioniert, aber der Browser lädt dann ewig und zeigt nichts an Lösung:
MehrTREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel
von Ricardo Gantschew btk Berlin Dozent / Till Nagel 01 IDEE Einige kennen vielleicht GoogleTrends. Hierbei handelt es sich um eine Anwendung, bei der man verschiedenste Begriffe auf die Häufigkeit ihrer
MehrUpgrade-Leitfaden. Apparo Fast Edit 1 / 7
Upgrade-Leitfaden Apparo Fast Edit 1 / 7 Inhaltsverzeichnis 1 Download der neuen Version... 4 2 Sicherung des Apparo Datenbank-Repository... 4 3 De-Installation der installierten Apparo Fast Edit Version...
MehrMatrix42. Use Case - Inventory. Version 1.0.0. 12. Februar 2013 - 1 -
Matrix42 Use Case - Inventory Version 1.0.0 12. Februar 2013-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4 2.1 Die Inventory-Daten 4 2.2 Die Listenübersicht
MehrGeoPilot (Android) die App
GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen
MehrLokale Installation von DotNetNuke 4 ohne IIS
Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrKonfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014
Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...
MehrWie richten Sie Ihr Web Paket bei Netpage24 ein
Wie richten Sie Ihr Web Paket bei Netpage24 ein Eine kostenlose ebook Anleitung von Netpage24 - Webseite Information 1 E-Mail Bestätigung... 3 2 Ticketsystem... 3 3 FTP Konto anlegen... 4 4 Datenbank anlegen...
MehrKlassenverwaltung im FIS-Lernportal
Tutorial Klassenverwaltung im FIS-Lernportal Schritte Nutzen Auswertung Fernerkundung in Schulen Klassenverwaltung im FIS-Lernportal Seite 1 / 5 Die Klassenverwaltung des FIS-Lernportals bietet allen Lehrer/Innen
MehrArbeiten mit Standorten und Freimeldungen
Lavid-F.I.S. Logistik Arbeiten mit Standorten und Dauner Str. 2, D-4236 Mönchengladbach, Tel. 0266-97022-0, Fax -5, Email: info@lavid-software.net . Inhalt. Inhalt... 2 2. Verwendbar für:... 2 3. Aufgabe...
MehrBauteilattribute als Sachdaten anzeigen
Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...
Mehricloud nicht neu, aber doch irgendwie anders
Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und
MehrGuide DynDNS und Portforwarding
Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch
MehrPersönliches Adressbuch
Persönliches Adressbuch Persönliches Adressbuch Seite 1 Persönliches Adressbuch Seite 2 Inhaltsverzeichnis 1. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 2. ALLGEMEINE INFORMATIONEN ZUM PERSÖNLICHEN
MehrGrundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service
Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service Der BPM-Regelkreis Im Mittelpunkt dieser Übersicht steht die konkrete Vorgehensweise bei der Einführung
MehrArtikel Schnittstelle über CSV
Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte
MehrIBIS Professional. z Dokumentation zur Dublettenprüfung
z Dokumentation zur Dublettenprüfung Die Dublettenprüfung ist ein Zusatzpaket zur IBIS-Shopverwaltung für die Classic Line 3.4 und höher. Dubletten entstehen dadurch, dass viele Kunden beim Bestellvorgang
MehrSJ OFFICE - Update 3.0
SJ OFFICE - Update 3.0 Das Update auf die vorherige Version 2.0 kostet netto Euro 75,00 für die erste Lizenz. Das Update für weitere Lizenzen kostet jeweils netto Euro 18,75 (25%). inkl. Programmsupport
MehrKurzeinführung Excel2App. Version 1.0.0
Kurzeinführung Excel2App Version 1.0.0 Inhalt Einleitung Das Ausgangs-Excel Excel-Datei hochladen Excel-Datei konvertieren und importieren Ergebnis des Imports Spalten einfügen Fehleranalyse Import rückgängig
MehrMobile-Szenario in der Integrationskomponente einrichten
SAP Business One Konfigurationsleitfaden PUBLIC Mobile-Szenario in der Integrationskomponente einrichten Zutreffendes Release: SAP Business One 8.81 Alle Länder Deutsch November 2010 Inhalt Einleitung...
MehrNEWSLETTER // AUGUST 2015
NEWSLETTER // AUGUST 2015 Kürzlich ist eine neue Version von SoftwareCentral erschienen, die neue Version enthält eine Reihe von Verbesserungen und neuen Funktionen die das Arbeiten mit SCCM noch einfacher
MehrDatensicherung. Beschreibung der Datensicherung
Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten
MehrDatenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
MehrInternet Kurs. Suchmaschinen
Internet Kurs Suchmaschinen M. Stalder Internetkurs M. Stalder 1 / 6 Suchmaschinen Suchmaschinen haben sich in letzter Zeit immer mehr zu einem unverzichtbaren Hilfsmittel entwickelt. Das Internet bietet
Mehr.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage
.htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess
MehrOptimierung von Ausdrucken im SAP-Umfeld unter Einsatz von MS Office Funktionen
Optimierung von Ausdrucken im SAP-Umfeld unter Einsatz von MS Office Funktionen seit 1969 SAP Standard-Ausdrucke So sehen Standardausdrucke aus SAP R/3 und ERP 6.0 aus. 2 PTA GmbH SAP Ausdrucke mit Office
MehrProf. Dr.-Ing. Rainer Schmidt 1
Prof. Dr.-Ing. Rainer Schmidt 1 Business Analytics und Big Data sind Thema vieler Veröffentlichungen. Big Data wird immer häufiger bei Google als Suchbegriff verwendet. Prof. Dr.-Ing. Rainer Schmidt 2
MehrComputeria Rorschach Mit Excel Diagramme erstellen
Mit Excel Diagramme erstellen 25.12.2010 Roland Liebing Mit Excel Diagramme erstellen Diagramme können Zahlenwerte veranschaulichen, das heisst, mit Hilfe eines Diagramms können Zahlen besser miteinander
MehrAnwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen
Anwendungshinweis Nr. 12 Produkt: Schlüsselworte: Problem: Softing OPC Easy Connect OPC Server, Redundanz Wie konfiguriere ich redundante Lösung: Ausgangssituation: Eine OPC Client-Anwendung ist mit mehreren
MehrLeitfaden zur Einrichtung za-mail mit IMAP auf dem iphone
Dieser Leitfaden zeigt die einzelnen Schritte der Konfiguration des iphones für die Abfrage von Emails bei der za-internet GmbH. Grundsätzlich gelten diese Schritte auch für andere Geräte, wie dem ipod
MehrSchnittstelle DIGI-Zeiterfassung
P.A.P.A. die kaufmännische Softwarelösung Schnittstelle DIGI-Zeiterfassung Inhalt Einleitung... 2 Eingeben der Daten... 2 Datenabgleich... 3 Zusammenfassung... 5 Es gelten ausschließlich unsere Allgemeinen
MehrPHP Kurs Online Kurs Analysten Programmierer Web PHP
PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione
MehrBI in der Cloud eine valide Alternative Überblick zum Leistungsspektrum und erste Erfahrungen 11.15 11.45
9.30 10.15 Kaffee & Registrierung 10.15 10.45 Begrüßung & aktuelle Entwicklungen bei QUNIS 10.45 11.15 11.15 11.45 Von Big Data zu Executive Decision BI für den Fachanwender bis hin zu Advanced Analytics
Mehr1 Konto für HBCI/FinTS mit Chipkarte einrichten
1 Konto für HBCI/FinTS mit Chipkarte einrichten Um das Verfahren HBCI/FinTS mit Chipkarte einzusetzen, benötigen Sie einen Chipkartenleser und eine Chipkarte. Die Chipkarte erhalten Sie von Ihrem Kreditinstitut.
MehrEXASOL Anwendertreffen 2012
EXASOL Anwendertreffen 2012 EXAPowerlytics Feature-Architektur EXAPowerlytics In-Database Analytics Map / Reduce Algorithmen Skalare Fkt. Aggregats Fkt. Analytische Fkt. Hadoop Anbindung R LUA Python 2
MehrSAP NetWeaver Gateway. Connectivity@SNAP 2013
SAP NetWeaver Gateway Connectivity@SNAP 2013 Neue Wege im Unternehmen Neue Geräte und Usererfahrungen Technische Innovationen in Unternehmen Wachsende Gemeinschaft an Entwicklern Ausdehnung der Geschäftsdaten
MehrELO Print&Archive so nutzen Sie es richtig
ELO Print&Archive so nutzen Sie es richtig Die Einrichtung Ihres ersten Dokumententyps Im folgenden Beispiel möchten wir Ihnen genauer erläutern, wie Sie das neue Modul ELO Print&Archive, das automatisch
MehrWindows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
MehrAnleitung: Sammel-Rechnungen für Lizenzen bei Swiss Basketball
Anleitung: Sammel-Rechnungen für Lizenzen bei Swiss Basketball Inhalt 1. Login: Wo und Wie kann ich mich einloggen?... 2 Die Webseite: www.basketplan.ch... 2 Mein Klub-Login?... 2 2. Orientierung: Was
MehrOrdner Berechtigung vergeben Zugriffsrechte unter Windows einrichten
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.
Mehrmysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank
mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrWo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite http://www.hp.
Erfahrungen mit dem Insight Manager von HP Dipl. Ing. Elektrotechnik (FH) - Automatisierungs- / Regelungstechnik DV-Spezialist Landesbank Rheinland-Pfalz Abteilung 2-351 Große Bleiche 54-56 55098 Mainz
MehrSuche konfigurieren, Type-Ahead Begriffe festlegen, Tags und Suche webbank+ Handbuch Basic, Kapitel 8 Version 5.2 29. Januar 2015
// Suche einrichten Suche konfigurieren, Type-Ahead egriffe festlegen, Tags und Suche, Kapitel 8 Version 5.2 29. Januar 2015 138 // Suche einrichten 8. Suche einrichten Die Suche wird immer öfter als Unterstützung
MehrSearch-Driven Applications. Florian Hopf, freiberuflicher Softwareentwickler Tobias Kraft, exensio GmbH
Search-Driven Applications Florian Hopf, freiberuflicher Softwareentwickler Tobias Kraft, exensio GmbH Agenda Motivation Aufbau der Such-Datenstruktur Anwendungsfälle Fallstricke Was ist Suche? Was wollen
MehrDas EDV-Cockpit mit MindManager für SharePoint
Das EDV-Cockpit mit MindManager für SharePoint 2010 MindBusiness GmbH 29.03.2010 - 2 - Inhalt Mindjet MindManager für SharePoint: Das EDV-Cockpit... 3 Vorbereitungen in SharePoint... 3 Aufbau der Map...
Mehr1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können.
Produktvarianten und Downloads erstellen Produktvarianten eignen sich um Artikel mit verschiedenen Optionen wie bspw. ein Herrenhemd in den Farben blau, grün und rot sowie in den Größen S, M und L zu verkaufen.
Mehrteischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep
teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen
MehrAblaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole
Lavid-F.I.S. Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der Lavid Software GmbH Dauner Straße 12, D-41236 Mönchengladbach http://www.lavid-software.net Support:
MehrSich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon.
www.blogger.com Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon. Sie müssen sich dort nur ein Konto anlegen. Dafür gehen Sie auf
MehrVERÖFFENTLICHT VON: ag-pictures Andreas Grzesiak Espenweg 5 86971 Peiting. 2015 Andreas Grzesiak Alle Rechte vorbehalten. www.ag-pictures.
VERÖFFENTLICHT VON: ag-pictures Andreas Grzesiak Espenweg 5 86971 Peiting 2015 Andreas Grzesiak Alle Rechte vorbehalten. www.ag-pictures.com Über Andreas Grzesiak: Andreas Grzesiak hat sich schon in jungen
MehrEinführung in den myapp2go Admin Bereich
Einführung in den myapp2go Admin Bereich Der Adminbereich kann bei unterschiedlichen Modulen andere Menüpunkte bei Ihnen haben, die Funktionalität ist aber gleich wie hier beschrieben. Selbstverständlich
MehrSchnellste Realtime Segmentierung weltweit
Schnellste Realtime Segmentierung weltweit powered by 1 Über Webtrekk Gegründet 2004 in Berlin Einer der führenden europäischen Webanalyseanbieter 45 Mitarbeiter 2 2nd only to Omniture 3 Referenzen Kunden
MehrEinfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch
Einfache und effiziente Zusammenarbeit in der Cloud EASY-PM Office Add-Ins Handbuch Inhaltsverzeichnis 1. Einführung... 3 2. Ribbonmenü... 4 3. Dokument... 5 3.1 Öffnen... 5 3.2 Speichern... 6 3.3 Speichern
MehrAn integrated total solution for automatic job scheduling without user interaction
An integrated total solution for automatic job scheduling without user interaction Multifunktional Der Job-Scheduler ist ein multifunktionaler Taskplaner welcher die Steuerzentrale zur regelmässigen Ausführung
MehrInstallationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb
Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb CashPro basiert auf Accesstechnologie 2003 und ist auch unter den aktuellen Accessversionen 2007 bis 2013 einsetzbar und Mehrbenutzerfähig.
MehrSchritt 1. Anmelden. Klicken Sie auf die Schaltfläche Anmelden
Schritt 1 Anmelden Klicken Sie auf die Schaltfläche Anmelden Schritt 1 Anmelden Tippen Sie Ihren Benutzernamen und Ihr Passwort ein Tipp: Nutzen Sie die Hilfe Passwort vergessen? wenn Sie sich nicht mehr
MehrIntelligente Updateverwaltung Inventarisierung von Softwareprodukten Remoteunterstützung, mobile Endgeräte u.v.m.
Mit SCCM* IT-Standardaufgaben noch schneller erledigen *System Center Configuration Manager (SCCM) 2012 SCCM Software und Vollautomatische Installation von Betriebssystemen Intelligente Updateverwaltung
MehrMeldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung
Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Nach dem Update auf die Version 1.70 bekommen Sie eine Fehlermeldung,
MehrOptimieren Sie Ihre n2n Webseite
N2N Autor: Bert Hofmänner 5.10.2011 Optimieren Sie Ihre n2n Webseite Einer der wichtigsten Faktoren für den Erfolg Ihrer Webseite in Suchmaschinen sind deren Inhalte. Diese können Sie mit einem Content
Mehr3 Windows als Storage-Zentrale
3 Windows als Storage-Zentrale Windows als zentrale Datenspeichereinheit punktet gegenüber anderen Lösungen vor allem bei der Integration in vorhandene Unternehmensnetze sowie bei der Administration. Dabei
Mehr