Data modeling for Elasticsearch

Data modeling for
Florian Hopf - @fhopf
GOTO nights Berlin
22.10.2015
What are we talking about?
●
Storing and querying data
●
String
●
Numeric
●
Date
●
Embedding documents
●
Types and Mapping
●
Updating data
●
Time stamped data
Documents
A relational view
A relational view
●
Different aspects are stored in different tables
●
Traversal of tables via join-Operations
●
High degree of normalization
Documents
{ }Book
Author
Publisher
Documents
●
Often more natural
●
Flexible schema
●
Fields can be queried
●
Duplicate storage of document parts
Documents
POST /library/book
{
"title": "Elasticsearch in Action",
"author": [ "Radu Gheorghe",
"Matthew Lee Hinman",
"Roy Russo" ],
"pages": 400,
"published": "2015-06-30T00:00:00.000Z",
"publisher": {
"name": "Manning",
"country": "USA"
}
}
Text
Text
POST /library/book
{
"title": "Elasticsearch in Action",
"author": [ "Radu Gheorghe",
"Matthew Lee Hinman",
"Roy Russo" ],
"pages": 400,
"published": "2015-06-30T00:00:00.000Z",
"publisher": {
"name": "Manning",
"country": "USA"
}
}
Searching data
GET /library/book/_search?q=elasticsearch
{
"took": 75,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.067124054,
"hits": [
[...]
]
}
}
Searching data
GET /library/book/_search
{
"query": {
"match": {
"title": "elasticsearch"
}
}
}
Understand index storage
●
Data is stored in the inverted index
●
Analyzing process determines storage and
query characteristics
●
Important for designing data storage
Analyzing
Term Document Id
Action 1
ein 2
Einstieg 2
Elasticsearch 1,2
in 1
praktischer 2
1. Tokenization
Elasticsearch
in Action
Elasticsearch:
Ein praktischer
Einstieg
Analyzing
Term Document Id
action 1
ein 2
einstieg 2
elasticsearch 1,2
in 1
praktischer 2
1. Tokenization
Elasticsearch
in Action
Elasticsearch:
Ein praktischer
Einstieg
2. Lowercasing
Search
Term Document Id
action 1
ein 2
einstieg 2
elasticsearch 1,2
in 1
praktischer 2
1. Tokenization
2. LowercasingElasticsearch elasticsearch
Inverted Index
●
Terms are deduplicated
●
Original content is lost
●
Elasticsearch stores the original content in a
special field source
Inverted Index
●
New requirement: search for German content
●
praktischer praktisch→
Search
Term Document Id
action 1
ein 2
einstieg 2
elasticsearch 1,2
in 1
praktischer 2
1. Tokenization
2. Lowercasingpraktisch praktisch
Analyzing
Term Document Id
action 1
ein 2
einstieg 2
elasticsearch 1,2
in 1
praktisch 2
1. Tokenization
Elasticsearch
in Action
Elasticsearch:
Ein praktischer
Einstieg
2. Lowercasing
3. Stemming
Search
Term Document Id
action 1
ein 2
einstieg 2
elasticsearch 1,2
in 1
praktisch 2
1. Tokenization
2. Lowercasingpraktisch praktisch
3. Stemming
Mapping
curl -XPUT "http://localhost:9200/library/book/_mapping"
-d'
{
"book": {
"properties": {
"title": {
"type": "string",
"analyzer": "german"
}
}
}
}'
Understand index storage
●
For every indexed document Elasticsearch
builds a mapping from the fields in the
documents
●
Sane defaults for lots of use cases
●
But: understand and control it and your data
Searching data
GET /library/book/_search?q=elasticsearch
{
"took": 75,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.067124054,
"hits": [
[...]
]
}
}
_all
●
Default search field _all
"book": {
"_all": {
"enabled": false
}
}
Partial Word Matches
●
New requirement: Search for parts of words
●
elastic elasticsearch→
Partial Word Matches
●
Common option: Using wildcards
POST /library/book/_search
{
"query": {
"wildcard": {
"title": {
"value": "elastic*"
}
}
}
}
Partial Word Matches
●
Wildcards
●
Query time option
●
Scalability?
Partial Word Matches
●
Alternative: Index Time preprocessing
●
Terms are stored in the index in a special way
●
Search is then a normal lookup
●
For partial words: N-Grams
N-Grams
●
Configuring an N-Gram analyzer
●
Builds N-Grams
●
elas
●
elast
●
elasti
●
elastic
●
elastics
●
...
Index Settings for N-Grams
PUT /library-ngram
{
"settings": {
"analysis": {
"analyzer": {
"prefix_analyzer": {
"type": "custom",
"tokenizer": "prefix_tokenizer",
"filter": ["lowercase"]
}
},
"tokenizer": {
"prefix_tokenizer": {
"type": "edgeNGram",
"min_gram" : "4",
"max_gram" : "8",
"token_chars": [ "letter", "digit" ]
}
}
}}}
Mapping for N-Grams
PUT /library-ngram/book/_mapping
{
"book": {
"properties": {
"title": {
"type": "string",
"analyzer": "german",
"fields": {
"prefix": {
"type": "string",
"index_analyzer": "prefix_analyzer",
"query_analyzer": "lowercase"
}
}
}
}
}
}
Additional Field
●
Indexed Document stays the same
●
Additional index field title.prefix
●
Can be queried like any field
Querying additional Field
GET /library-ngram/book/_search
{
"query": {
"match": {
"title.prefix": "elastic"
}
}
}
Querying additional Field
GET /library-ngram/book/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"title": "elastic"
}
},
{
"match": {
"title.prefix": "elastic"
}
}
]
}
}
}
Additional Field
●
Increased storage requirements
●
Increased scalability (and performance) during
search
●
Trade storage against search performance
Numbers
Storing data
POST /library/book
{
"title": "Elasticsearch in Action",
"author": [ "Radu Gheorghe",
"Matthew Lee Hinman",
"Roy Russo" ],
"pages": 400,
"published": "2015-06-30T00:00:00.000Z",
"publisher": {
"name": "Manning",
"country": "USA"
}
}
Querying
POST /library/book/_search
{
"query": {
"term": {
"pages": "400"
}
}
}
●
Numeric term is in index
Querying
POST /library/book/_search
{
"query": {
"range": {
"pages": {
"gte": 300
}
}
}
}
●
Ranges
Numeric values
●
Numeric values are stored in a Trie structure
●
Makes range queries very efficient
Numeric values
●
Simplified view: 250, 290 and 400
Numeric values
●
Precision influences depth of tree
●
Lower precision_step higher number of→
terms
●
Most of the time defaults are fine
Date
Storing data
POST /library/book
{
"title": "Elasticsearch in Action",
"author": [ "Radu Gheorghe",
"Matthew Lee Hinman",
"Roy Russo" ],
"pages": 400,
"published": "2015-06-30T00:00:00.000Z",
"publisher": {
"name": "Manning",
"country": "USA"
}
}
Date
●
Default: ISO8601 format
●
Joda Time patterns
●
Internally stored as long
Date
PUT /library-date/book/_mapping
{
"book": {
"properties": {
"published": {
"type": "date",
"format": "dd.MM.yyyy"
}
}
}
}
Date
POST /library-date/book
{
"title": "Elasticsearch in Action",
"author": [ "Radu Gheorghe",
"Matthew Lee Hinman",
"Roy Russo" ],
"pages": 400,
"published": "30.06.2015",
"publisher": {
"name": "Manning",
"country": "USA"
}
}
Date
●
Common: Filtering on date range
●
from and/or to
Date
"query": {
"filtered": {
"filter": {
"range": {
"published": {
"to": "30.06.2015"
}
}
}
}
}
Date
"query": {
"filtered": {
"filter": {
"range": {
"published": {
"to": "now-3M"
}
}
}
}
}
Date
●
Filter is not cached with 'now'
●
Only cached with rounded value
"range": {
"published": {
"to": "now-3M/d"
}
}
Date
●
Exact values needed Combine filters→
Embedded Documents
Embedded Documents
POST /library/book
{
"title": "Elasticsearch in Action",
"author": [ "Radu Gheorghe",
"Matthew Lee Hinman",
"Roy Russo" ],
"pages": 400,
"published": "2015-06-30T00:00:00.000Z",
"publisher": {
"name": "Manning",
"country": "USA"
}
}
Embedded Documents
●
Default: Flat structure
●
Good for 1:1 relation
"publisher": {
"name": "Manning",
"country": "USA"
}
"publisher.name": "Manning",
"publisher.country": "USA"
Embedded documents
●
1:N relations are problematic
{
"title": "Elasticsearch in Action",
"ratings": [
{
"source": "Amazon",
"stars": 5
},
{
"source": "Goodreads",
"stars": 4
}
]
}
Embedded documents
●
1:N relations are problematic
"query": {
"bool": {
"must": [
{ "match": { "ratings.source": "Goodreads" }},
{ "match": { "ratings.stars": 5 }}
]
}
}
Nested
●
Solution: Nested documents
●
Lucene internal: Seperate document,
connected via Block-Join
●
Accessing documents via specialized query
Nested
●
Explicit mapping
"book": {
"properties": {
"ratings": {
"type": "nested",
"properties": {
"source": {
"type": "string"
},
"stars": {
"type": "integer"
}
}
}
}
}
Nested
●
Nested-Query
"query": {
"nested": {
"path": "ratings",
"query": {
"bool": {
"must": [
{ "match": { "ratings.source": "Goodreads" }},
{ "match": { "ratings.stars": 5 }}
]
}
}
}
}
Nested
●
Additional flat storage
●
include_in_parent
●
include_in_root
Parent-Child
●
Alternative storage
●
Indexing seperate types
●
Connection via parent parameter
Parent-Child
●
Book is stored without ratings
POST /library-parent-child/book/
{
"title": "Elasticsearch in Action",
"publisher": {
"name": "Manning"
}
}
Parent-Child
●
Ratings reference books
PUT /library-parent-child/rating/_mapping
{
"rating": {
"_parent": {
"type": "book"
}
}
}
Parent-Child
●
Ratings reference book
POST /library-parent-child/rating?
parent=AU_smK5FYK634dNiekGr
{
"source": "Amazon",
"stars": 5
}
POST /library-parent-child/rating?
parent=AU_smK5FYK634dNiekGr
{
"source": "Goodreads",
"stars": 4
}
Parent-Child
●
has_child/has_parent
POST /library-parent-child/book/_search
{
"query": {
"has_child": {
"type": "rating",
"query": {
"bool": {
"must": [
{ "match": {"source": "Goodreads" }},
{ "match": {"stars": 5 }}
]
}
}
}
}
}
Parent-Child
●
Stored on same shard
●
Only suitable for smaller amounts of docs
●
Requires different types
Types and Mapping
Querying Elasticsearch
●
Ad-hoc queries
●
But better characteristics when designing storage
for query
●
Flexible Schema
●
But mapping better defined upfront
Mapping
●
Mapping for field can't be changed
●
Think about how you will be querying your
data
●
Think about defining a static mapping upfront
Disable dynamic mapping
PUT /library/book/_mapping
{
"book": {
"dynamic": "strict"
}
}
Disable dynamic mapping
POST /library/book
{
"titel": "Falsch"
}
{
"error" : "StrictDynamicMappingException[mapping set to
strict! dynamic introduction of [titel] within [book]
is not allowed]",
"status" : 400
}
Types
●
Types determine mapping
●
Lucene doesn't know about types
Types
●
Fields with same names need to be mapped
the same way
●
Relevance can be influenced
●
Index settings: shards, replicas per type?
Key-Value-Store
●
Careful when using ES as key-value-store
●
Mapping is part of cluster state
Updating Data
Updating Data
●
Primary Datastore
●
Full indexing
●
Incremental indexing
Updating Data
●
Elasticsearch stores data in segment files
●
Immutable files
●
Segment is a mini inverted index
Segments
Segments
●
Building inverted index is expensive
●
Add documents add new segments→
Segments
●
Doc deletion is only a marker
●
Deleted documents are automatically filtered
Updating Data
●
Documents can be updated
●
Full Update
●
Partial Update
Updating data
●
Full update: Replaces a document
PUT /library/book/AVBDusjh0tduyhTzZqTC
{
"title": "Elasticsearch in Action",
"author": [
"Radu Gheorghe",
"Matthew L. Hinman",
"Roy Russo"
],
"published": "2015-06-30T00:00:00.000Z",
"publisher": {
"name": "Manning",
"country": "USA"
}
}
Updating data
●
Partial update: Uses source of document
POST /library/book/AVBDusjh0tduyhTzZqTC/_update
{
"doc": {
"title": "Elasticsearch In Action"
}
}
Updating data
●
Update = Delete + Add
●
Expensive operation
●
Design documents as events if possible
Timestamps
Working with timestamps
●
Timestamped data
●
Write events
●
Common: Log events
Index Design
●
Use date aware index name
●
library-221015
●
Create a new index every day
Index Design
●
Index templates for custom settings
PUT /_template/library-template
{
"template": "library-*",
"mappings": {
"book": {
"properties": {
"title": {
"type": "string",
"analyzer": "german"
}
}
}
}
}
Index Design
●
Search multiple indices
GET /library-221015,library-211015/_search
GET /library-*/_search
Index Design
●
Combining indices with Index-Aliases
POST /_aliases
{
"actions" : [
{ "add" : {
"index" : "library-2015*",
"alias" : "thisyear"
}},
{ "add" : {
"index" : "library-2015-10*",
"alias" : "thismonth"
}}
]
}
Index Design
●
Implicit date selection
GET /thisyear/_search
GET /thismonth/_search
Index Design
●
Filtered Alias
"actions" : [{
"add" : {
"index" : "library",
"alias" : "buecher",
"filter" : {
"term" : { "publisher.country" : "de" }
}
}
}]
What is missing?
●
Distributed data and Routing
●
Field Data and Doc Values
●
Index-Options
●
Geo-Data
More Info
More Info
●
http://elastic.co
●
Elasticsearch – The definitive Guide
●
https://www.elastic.co/guide/en/elasticsearch/gui
de/master/index.html
●
Elasticsearch in Action
●
https://www.manning.com/books/elasticsearch-in-
action
●
http://blog.florian-hopf.de
Resources
●
http://blog.parsely.com/post/1691/lucene/
●
http://de.slideshare.net/VadimKirilchuk/nume
ric-rangequeries
●
https://www.elastic.co/blog/found-optimizing-
elasticsearch-searches
Images
●
http://www.morguefile.com/archive/display/48456
●
http://www.morguefile.com/archive/display/104082
●
http://www.morguefile.com/archive/display/978102
●
http://www.morguefile.com/archive/display/978102
●
http://www.morguefile.com/archive/display/861633
●
http://www.morguefile.com/archive/display/899572
●
http://www.morguefile.com/archive/display/903066
●
http://www.morguefile.com/archive/display/53012
1 of 99

Recommended

Searching Relational Data with Elasticsearch by
Searching Relational Data with ElasticsearchSearching Relational Data with Elasticsearch
Searching Relational Data with Elasticsearchsirensolutions
11K views19 slides
elasticsearch_적용 및 활용_정리 by
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리Junyi Song
74.7K views246 slides
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드 by
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드confluent
640 views103 slides
Dynamic Partition Pruning in Apache Spark by
Dynamic Partition Pruning in Apache SparkDynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDatabricks
4.9K views20 slides
The Aggregation Framework by
The Aggregation FrameworkThe Aggregation Framework
The Aggregation FrameworkMongoDB
46.8K views50 slides
Arbitrary Stateful Aggregations using Structured Streaming in Apache Spark by
Arbitrary Stateful Aggregations using Structured Streaming in Apache SparkArbitrary Stateful Aggregations using Structured Streaming in Apache Spark
Arbitrary Stateful Aggregations using Structured Streaming in Apache SparkDatabricks
5.7K views36 slides

More Related Content

What's hot

Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy... by
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...Databricks
4.2K views45 slides
The Parquet Format and Performance Optimization Opportunities by
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesDatabricks
8.2K views32 slides
On Improving Broadcast Joins in Apache Spark SQL by
On Improving Broadcast Joins in Apache Spark SQLOn Improving Broadcast Joins in Apache Spark SQL
On Improving Broadcast Joins in Apache Spark SQLDatabricks
1.6K views43 slides
Optimizing Apache Spark SQL Joins by
Optimizing Apache Spark SQL JoinsOptimizing Apache Spark SQL Joins
Optimizing Apache Spark SQL JoinsDatabricks
44.9K views24 slides
mongodb와 mysql의 CRUD 연산의 성능 비교 by
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교Woo Yeong Choi
31.7K views69 slides
[pgday.Seoul 2022] PostgreSQL with Google Cloud by
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google CloudPgDay.Seoul
230 views49 slides

What's hot(20)

Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy... by Databricks
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Databricks4.2K views
The Parquet Format and Performance Optimization Opportunities by Databricks
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization Opportunities
Databricks8.2K views
On Improving Broadcast Joins in Apache Spark SQL by Databricks
On Improving Broadcast Joins in Apache Spark SQLOn Improving Broadcast Joins in Apache Spark SQL
On Improving Broadcast Joins in Apache Spark SQL
Databricks1.6K views
Optimizing Apache Spark SQL Joins by Databricks
Optimizing Apache Spark SQL JoinsOptimizing Apache Spark SQL Joins
Optimizing Apache Spark SQL Joins
Databricks44.9K views
mongodb와 mysql의 CRUD 연산의 성능 비교 by Woo Yeong Choi
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
Woo Yeong Choi31.7K views
[pgday.Seoul 2022] PostgreSQL with Google Cloud by PgDay.Seoul
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud
PgDay.Seoul230 views
From Query Plan to Query Performance: Supercharging your Apache Spark Queries... by Databricks
From Query Plan to Query Performance: Supercharging your Apache Spark Queries...From Query Plan to Query Performance: Supercharging your Apache Spark Queries...
From Query Plan to Query Performance: Supercharging your Apache Spark Queries...
Databricks684 views
Building large scale transactional data lake using apache hudi by Bill Liu
Building large scale transactional data lake using apache hudiBuilding large scale transactional data lake using apache hudi
Building large scale transactional data lake using apache hudi
Bill Liu686 views
MongoDB Fundamentals by MongoDB
MongoDB FundamentalsMongoDB Fundamentals
MongoDB Fundamentals
MongoDB1.8K views
Introduction to elasticsearch by hypto
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
hypto2.3K views
Dynamic Allocation in Spark by Databricks
Dynamic Allocation in SparkDynamic Allocation in Spark
Dynamic Allocation in Spark
Databricks10.1K views
Introduction to MongoDB by Mike Dirolf
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Mike Dirolf38.4K views
Spark shuffle introduction by colorant
Spark shuffle introductionSpark shuffle introduction
Spark shuffle introduction
colorant50.7K views
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J... by Databricks
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Databricks98.6K views
Working with JSON Data in PostgreSQL vs. MongoDB by ScaleGrid.io
Working with JSON Data in PostgreSQL vs. MongoDBWorking with JSON Data in PostgreSQL vs. MongoDB
Working with JSON Data in PostgreSQL vs. MongoDB
ScaleGrid.io830 views
Minio Cloud Storage by Minio
Minio Cloud StorageMinio Cloud Storage
Minio Cloud Storage
Minio3K views
Dynamic filtering for presto join optimisation by Ori Reshef
Dynamic filtering for presto join optimisationDynamic filtering for presto join optimisation
Dynamic filtering for presto join optimisation
Ori Reshef1.5K views
Apache Spark on Kubernetes Anirudh Ramanathan and Tim Chen by Databricks
Apache Spark on Kubernetes Anirudh Ramanathan and Tim ChenApache Spark on Kubernetes Anirudh Ramanathan and Tim Chen
Apache Spark on Kubernetes Anirudh Ramanathan and Tim Chen
Databricks6.6K views
The Patterns of Distributed Logging and Containers by SATOSHI TAGOMORI
The Patterns of Distributed Logging and ContainersThe Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and Containers
SATOSHI TAGOMORI25K views
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P... by Databricks
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Databricks1K views

Viewers also liked

Elasticsearch - Devoxx France 2012 - English version by
Elasticsearch - Devoxx France 2012 - English versionElasticsearch - Devoxx France 2012 - English version
Elasticsearch - Devoxx France 2012 - English versionDavid Pilato
11.4K views156 slides
ElasticSearch in Production: lessons learned by
ElasticSearch in Production: lessons learnedElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learnedBeyondTrees
65K views22 slides
Elasticsearch in Zalando by
Elasticsearch in ZalandoElasticsearch in Zalando
Elasticsearch in ZalandoAlaa Elhadba
2.2K views70 slides
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine by
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search EngineElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search EngineDaniel N
737 views33 slides
Elasticsearch as a search alternative to a relational database by
Elasticsearch as a search alternative to a relational databaseElasticsearch as a search alternative to a relational database
Elasticsearch as a search alternative to a relational databaseKristijan Duvnjak
11.6K views23 slides
Intro to Elasticsearch by
Intro to ElasticsearchIntro to Elasticsearch
Intro to ElasticsearchClifford James
10.7K views44 slides

Viewers also liked(9)

Elasticsearch - Devoxx France 2012 - English version by David Pilato
Elasticsearch - Devoxx France 2012 - English versionElasticsearch - Devoxx France 2012 - English version
Elasticsearch - Devoxx France 2012 - English version
David Pilato11.4K views
ElasticSearch in Production: lessons learned by BeyondTrees
ElasticSearch in Production: lessons learnedElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learned
BeyondTrees65K views
Elasticsearch in Zalando by Alaa Elhadba
Elasticsearch in ZalandoElasticsearch in Zalando
Elasticsearch in Zalando
Alaa Elhadba2.2K views
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine by Daniel N
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search EngineElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
Daniel N737 views
Elasticsearch as a search alternative to a relational database by Kristijan Duvnjak
Elasticsearch as a search alternative to a relational databaseElasticsearch as a search alternative to a relational database
Elasticsearch as a search alternative to a relational database
Kristijan Duvnjak11.6K views
Intro to Elasticsearch by Clifford James
Intro to ElasticsearchIntro to Elasticsearch
Intro to Elasticsearch
Clifford James10.7K views
Elasticsearch Introduction to Data model, Search & Aggregations by Alaa Elhadba
Elasticsearch Introduction to Data model, Search & AggregationsElasticsearch Introduction to Data model, Search & Aggregations
Elasticsearch Introduction to Data model, Search & Aggregations
Alaa Elhadba2K views
Elastic Search (엘라스틱서치) 입문 by SeungHyun Eom
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
SeungHyun Eom61.6K views
Logging with Elasticsearch, Logstash & Kibana by Amazee Labs
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & Kibana
Amazee Labs52.4K views

Similar to Data modeling for Elasticsearch

Elasticsearch for Data Engineers by
Elasticsearch for Data EngineersElasticsearch for Data Engineers
Elasticsearch for Data EngineersDuy Do
1.1K views57 slides
Gdg dev fest 2018 elasticsearch, how to use and when to use. by
Gdg dev fest 2018   elasticsearch, how to use and when to use.Gdg dev fest 2018   elasticsearch, how to use and when to use.
Gdg dev fest 2018 elasticsearch, how to use and when to use.Ziyavuddin Vakhobov
77 views27 slides
Introduction to elasticsearch by
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearchFlorian Hopf
1.4K views53 slides
Elasticsearch speed is key by
Elasticsearch speed is keyElasticsearch speed is key
Elasticsearch speed is keyEnterprise Search Warsaw Meetup
1.3K views57 slides
Search Engine-Building with Lucene and Solr by
Search Engine-Building with Lucene and SolrSearch Engine-Building with Lucene and Solr
Search Engine-Building with Lucene and SolrKai Chan
4.7K views44 slides
Elasticsearch: You know, for search! and more! by
Elasticsearch: You know, for search! and more!Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Philips Kokoh Prasetyo
6.7K views51 slides

Similar to Data modeling for Elasticsearch(20)

Elasticsearch for Data Engineers by Duy Do
Elasticsearch for Data EngineersElasticsearch for Data Engineers
Elasticsearch for Data Engineers
Duy Do1.1K views
Gdg dev fest 2018 elasticsearch, how to use and when to use. by Ziyavuddin Vakhobov
Gdg dev fest 2018   elasticsearch, how to use and when to use.Gdg dev fest 2018   elasticsearch, how to use and when to use.
Gdg dev fest 2018 elasticsearch, how to use and when to use.
Introduction to elasticsearch by Florian Hopf
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
Florian Hopf1.4K views
Search Engine-Building with Lucene and Solr by Kai Chan
Search Engine-Building with Lucene and SolrSearch Engine-Building with Lucene and Solr
Search Engine-Building with Lucene and Solr
Kai Chan4.7K views
ElasticSearch in action by Codemotion
ElasticSearch in actionElasticSearch in action
ElasticSearch in action
Codemotion1.7K views
Elasticsearch - SEARCH & ANALYZE DATA IN REAL TIME by Piotr Pelczar
Elasticsearch - SEARCH & ANALYZE DATA IN REAL TIMEElasticsearch - SEARCH & ANALYZE DATA IN REAL TIME
Elasticsearch - SEARCH & ANALYZE DATA IN REAL TIME
Piotr Pelczar3.5K views
Search Engine-Building with Lucene and Solr, Part 1 (SoCal Code Camp LA 2013) by Kai Chan
Search Engine-Building with Lucene and Solr, Part 1 (SoCal Code Camp LA 2013)Search Engine-Building with Lucene and Solr, Part 1 (SoCal Code Camp LA 2013)
Search Engine-Building with Lucene and Solr, Part 1 (SoCal Code Camp LA 2013)
Kai Chan4.1K views
06. ElasticSearch : Mapping and Analysis by OpenThink Labs
06. ElasticSearch : Mapping and Analysis06. ElasticSearch : Mapping and Analysis
06. ElasticSearch : Mapping and Analysis
OpenThink Labs1.1K views
01 ElasticSearch : Getting Started by OpenThink Labs
01 ElasticSearch : Getting Started01 ElasticSearch : Getting Started
01 ElasticSearch : Getting Started
OpenThink Labs384 views
Modeling JSON data for NoSQL document databases by Ryan CrawCour
Modeling JSON data for NoSQL document databasesModeling JSON data for NoSQL document databases
Modeling JSON data for NoSQL document databases
Ryan CrawCour805 views
Elasticsearch in hatena bookmark by Shunsuke Kozawa
Elasticsearch in hatena bookmarkElasticsearch in hatena bookmark
Elasticsearch in hatena bookmark
Shunsuke Kozawa7.7K views
Elasticsearch an overview by Amit Juneja
Elasticsearch   an overviewElasticsearch   an overview
Elasticsearch an overview
Amit Juneja92 views
Schema Design by MongoDB
Schema DesignSchema Design
Schema Design
MongoDB435 views
Использование Elasticsearch для организации поиска по сайту by Olga Lavrentieva
Использование Elasticsearch для организации поиска по сайтуИспользование Elasticsearch для организации поиска по сайту
Использование Elasticsearch для организации поиска по сайту
Olga Lavrentieva7.8K views
MongoDB Schema Design by MongoDB
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
MongoDB25.5K views
Elasticsearch first-steps by Matteo Moci
Elasticsearch first-stepsElasticsearch first-steps
Elasticsearch first-steps
Matteo Moci3.5K views

More from Florian Hopf

Modern Java Features by
Modern Java Features Modern Java Features
Modern Java Features Florian Hopf
418 views22 slides
Einführung in Elasticsearch by
Einführung in ElasticsearchEinführung in Elasticsearch
Einführung in ElasticsearchFlorian Hopf
659 views54 slides
Java clients for elasticsearch by
Java clients for elasticsearchJava clients for elasticsearch
Java clients for elasticsearchFlorian Hopf
2.8K views56 slides
Einfuehrung in Elasticsearch by
Einfuehrung in ElasticsearchEinfuehrung in Elasticsearch
Einfuehrung in ElasticsearchFlorian Hopf
1.2K views75 slides
Einführung in Elasticsearch by
Einführung in ElasticsearchEinführung in Elasticsearch
Einführung in ElasticsearchFlorian Hopf
1K views63 slides
Elasticsearch und die Java-Welt by
Elasticsearch und die Java-WeltElasticsearch und die Java-Welt
Elasticsearch und die Java-WeltFlorian Hopf
2.1K views53 slides

More from Florian Hopf(13)

Modern Java Features by Florian Hopf
Modern Java Features Modern Java Features
Modern Java Features
Florian Hopf418 views
Einführung in Elasticsearch by Florian Hopf
Einführung in ElasticsearchEinführung in Elasticsearch
Einführung in Elasticsearch
Florian Hopf659 views
Java clients for elasticsearch by Florian Hopf
Java clients for elasticsearchJava clients for elasticsearch
Java clients for elasticsearch
Florian Hopf2.8K views
Einfuehrung in Elasticsearch by Florian Hopf
Einfuehrung in ElasticsearchEinfuehrung in Elasticsearch
Einfuehrung in Elasticsearch
Florian Hopf1.2K views
Einführung in Elasticsearch by Florian Hopf
Einführung in ElasticsearchEinführung in Elasticsearch
Einführung in Elasticsearch
Florian Hopf1K views
Elasticsearch und die Java-Welt by Florian Hopf
Elasticsearch und die Java-WeltElasticsearch und die Java-Welt
Elasticsearch und die Java-Welt
Florian Hopf2.1K views
Anwendungsfälle für Elasticsearch JAX 2015 by Florian Hopf
Anwendungsfälle für Elasticsearch JAX 2015Anwendungsfälle für Elasticsearch JAX 2015
Anwendungsfälle für Elasticsearch JAX 2015
Florian Hopf1.4K views
Anwendungsfälle für Elasticsearch JavaLand 2015 by Florian Hopf
Anwendungsfälle für Elasticsearch JavaLand 2015Anwendungsfälle für Elasticsearch JavaLand 2015
Anwendungsfälle für Elasticsearch JavaLand 2015
Florian Hopf3.3K views
Anwendungsfaelle für Elasticsearch by Florian Hopf
Anwendungsfaelle für ElasticsearchAnwendungsfaelle für Elasticsearch
Anwendungsfaelle für Elasticsearch
Florian Hopf6.8K views
Search Evolution - Von Lucene zu Solr und ElasticSearch (Majug 20.06.2013) by Florian Hopf
Search Evolution - Von Lucene zu Solr und ElasticSearch (Majug 20.06.2013)Search Evolution - Von Lucene zu Solr und ElasticSearch (Majug 20.06.2013)
Search Evolution - Von Lucene zu Solr und ElasticSearch (Majug 20.06.2013)
Florian Hopf2K views
Search Evolution - Von Lucene zu Solr und ElasticSearch by Florian Hopf
Search Evolution - Von Lucene zu Solr und ElasticSearchSearch Evolution - Von Lucene zu Solr und ElasticSearch
Search Evolution - Von Lucene zu Solr und ElasticSearch
Florian Hopf2.6K views
Akka Presentation Schule@synyx by Florian Hopf
Akka Presentation Schule@synyxAkka Presentation Schule@synyx
Akka Presentation Schule@synyx
Florian Hopf1.6K views
Lucene Solr talk at Java User Group Karlsruhe by Florian Hopf
Lucene Solr talk at Java User Group KarlsruheLucene Solr talk at Java User Group Karlsruhe
Lucene Solr talk at Java User Group Karlsruhe
Florian Hopf1.5K views

Recently uploaded

CRM stick or twist.pptx by
CRM stick or twist.pptxCRM stick or twist.pptx
CRM stick or twist.pptxinfo828217
11 views16 slides
LIVE OAK MEMORIAL PARK.pptx by
LIVE OAK MEMORIAL PARK.pptxLIVE OAK MEMORIAL PARK.pptx
LIVE OAK MEMORIAL PARK.pptxms2332always
7 views6 slides
PyData Global 2022 - Things I learned while running neural networks on microc... by
PyData Global 2022 - Things I learned while running neural networks on microc...PyData Global 2022 - Things I learned while running neural networks on microc...
PyData Global 2022 - Things I learned while running neural networks on microc...SARADINDU SENGUPTA
5 views12 slides
Inawsidom - Data Journey by
Inawsidom - Data JourneyInawsidom - Data Journey
Inawsidom - Data JourneyPhilipBasford
8 views38 slides
DGIQ East 2023 AI Ethics SIG by
DGIQ East 2023 AI Ethics SIGDGIQ East 2023 AI Ethics SIG
DGIQ East 2023 AI Ethics SIGKaren Lopez
5 views7 slides
shivam tiwari.pptx by
shivam tiwari.pptxshivam tiwari.pptx
shivam tiwari.pptxAanyaMishra4
7 views14 slides

Recently uploaded(20)

CRM stick or twist.pptx by info828217
CRM stick or twist.pptxCRM stick or twist.pptx
CRM stick or twist.pptx
info82821711 views
LIVE OAK MEMORIAL PARK.pptx by ms2332always
LIVE OAK MEMORIAL PARK.pptxLIVE OAK MEMORIAL PARK.pptx
LIVE OAK MEMORIAL PARK.pptx
ms2332always7 views
PyData Global 2022 - Things I learned while running neural networks on microc... by SARADINDU SENGUPTA
PyData Global 2022 - Things I learned while running neural networks on microc...PyData Global 2022 - Things I learned while running neural networks on microc...
PyData Global 2022 - Things I learned while running neural networks on microc...
DGIQ East 2023 AI Ethics SIG by Karen Lopez
DGIQ East 2023 AI Ethics SIGDGIQ East 2023 AI Ethics SIG
DGIQ East 2023 AI Ethics SIG
Karen Lopez5 views
Best Home Security Systems.pptx by mogalang
Best Home Security Systems.pptxBest Home Security Systems.pptx
Best Home Security Systems.pptx
mogalang9 views
4_4_WP_4_06_ND_Model.pptx by d6fmc6kwd4
4_4_WP_4_06_ND_Model.pptx4_4_WP_4_06_ND_Model.pptx
4_4_WP_4_06_ND_Model.pptx
d6fmc6kwd47 views
CRM stick or twist workshop by info828217
CRM stick or twist workshopCRM stick or twist workshop
CRM stick or twist workshop
info82821714 views
Customer Data Cleansing Project.pptx by Nat O
Customer Data Cleansing Project.pptxCustomer Data Cleansing Project.pptx
Customer Data Cleansing Project.pptx
Nat O6 views
Data Journeys Hard Talk workshop final.pptx by info828217
Data Journeys Hard Talk workshop final.pptxData Journeys Hard Talk workshop final.pptx
Data Journeys Hard Talk workshop final.pptx
info82821711 views
Product Research sample.pdf by AllenSingson
Product Research sample.pdfProduct Research sample.pdf
Product Research sample.pdf
AllenSingson33 views
6498-Butun_Beyinli_Cocuq-Daniel_J.Siegel-Tina_Payne_Bryson-2011-259s.pdf by 10urkyr34
6498-Butun_Beyinli_Cocuq-Daniel_J.Siegel-Tina_Payne_Bryson-2011-259s.pdf6498-Butun_Beyinli_Cocuq-Daniel_J.Siegel-Tina_Payne_Bryson-2011-259s.pdf
6498-Butun_Beyinli_Cocuq-Daniel_J.Siegel-Tina_Payne_Bryson-2011-259s.pdf
10urkyr347 views
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion by Bertram Ludäscher
Games, Queries, and Argumentation Frameworks: Time for a Family ReunionGames, Queries, and Argumentation Frameworks: Time for a Family Reunion
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion
Underfunded.pptx by vgarcia19
Underfunded.pptxUnderfunded.pptx
Underfunded.pptx
vgarcia1914 views
Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language... by patiladiti752
Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language...Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language...
Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language...
patiladiti7528 views
Analytics Center of Excellence | Data CoE |Analytics CoE| WNS Triange by RNayak3
Analytics Center of Excellence | Data CoE |Analytics CoE| WNS TriangeAnalytics Center of Excellence | Data CoE |Analytics CoE| WNS Triange
Analytics Center of Excellence | Data CoE |Analytics CoE| WNS Triange
RNayak35 views

Data modeling for Elasticsearch