SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Satish Mohan
Your Data,
Your Search
Tuesday, 12 March 13
Enterprises today are collecting and have access
to more data points in their ecosystem then ever.
Tuesday, 12 March 13
File Store Example
File / Folder Navigation
Integration - Mount Points
Limited Metadata
Hierarchical Structure
Regular File Store
Tuesday, 12 March 13
• Find a document from December 2011 about transfer containing proposal and David
• Find the document received from John containing David and transfer
• Find the revisions of transfer document
File Store Example
File / Folder Navigation
Integration - Mount Points
Limited Metadata
Hierarchical Structure
Tuesday, 12 March 13
• Find a document from December 2011 about transfer containing proposal and David
• Find the document received from John containing David and transfer
• Find the revisions of transfer document
File Store Example
File / Folder Navigation
Integration - Mount Points
Limited Metadata
Hierarchical Structure Collections / Documents
Local / Distributed Integrations
Semantic Metadata
Declarative Queries
Automatic Indexing
Provenance
Automatic Organization
Virtual Collections
Regular File Store
Intelligent File Store
Tuesday, 12 March 13
ElasticSearch is an open source, scalable,
distributed, cloud-ready, highly-available full-text
search engine and database with powerful
aggregation features, communicating by JSON over
RESTful HTTP, based on Apache Lucene.
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Capture & Curate
Index
Streams
Analyse
Search
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
Playing with ElasticSearch
Rivers
• Data flows from sources using Rivers
• Continues to add data as it flows
• Can be added, removed, configured dynamically
Tuesday, 12 March 13
Playing with ElasticSearch
Rivers
• Data flows from sources using Rivers
• Continues to add data as it flows
• Can be added, removed, configured dynamically
ES NodeData Source
Data Source
Data Source
River
River
River
ES Index
Tuesday, 12 March 13
Playing with ElasticSearch
Rivers
• Data flows from sources using Rivers
• Continues to add data as it flows
• Can be added, removed, configured dynamically
ES NodeData Source
Data Source
Data Source
River
River
River
ES Index
Tuesday, 12 March 13
Playing with ElasticSearch
River Modules
• CouchDB • JDBC
• MongoDB • Solr
• Wikipedia • Jira
• Twitter • CSV
• ActiveMQ • FileSystem
• RabbitMQ • SysInfo
• NSQ • Logs
• RSS • LDAP
Tuesday, 12 March 13
Playing with ElasticSearch
Index
• Describes document structure to the search engine
• Automatically created with sensible defaults
• Explicit mapping can be provided (generally, a good idea)
• Simple:
• string, integer/long, float/double, boolean, and null
• Complex:
• array, object
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Shards
Replication Load Balancing Nodes
Distributed
Capture & Curate
Index
Streams
Analyse
Search
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
Playing with ElasticSearch
Distributed Model
• Number of shards is the scaling unit [ #shards > #nodes ]
• each one is a separate Lucene index thus, many per-index settings are available
• Moving shards around is faster than splitting them (no reindex)
• Replicas also serves reads, allowing to scale search
• # of replicas can be updated dynamically after index creation
Node 1
user (0)
user (1)
Node 2
user1 (0)
user (1)
Node 3
user (0)
user2 (0)
Automatic Discovery Protocol
Replica
Shard
Tuesday, 12 March 13
Playing with ElasticSearch
Index Aliases
curl -X POST 'http://localhost:9200/_aliases' -d '{
"actions" : [
{
"add" : {
“index” : “users”,
“alias” : “user_1”,
“filter” : { “term” : { “user” : “1” } },
“routing” : “1”
}
} ]
}'
Indexing and search happens on the alias, with automatic use of routing and ltering
Tuesday, 12 March 13
Playing with ElasticSearch
Index Aliases
curl -X POST 'http://localhost:9200/_aliases' -d
' {
"actions" : [ { "add" : {
"index" : "user_1",
"alias" : "users"
}
},
{ "add" : {
"index" : "user_2",
"alias" : "users"
}
} ]
}'
users
user_1
user_2
curl -X GET "http://localhost:9200/users/_search?q=..."
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Shards
Replication Load Balancing Nodes
Distributed
Capture & Curate
Index
Streams
Analyse
Search
Transport
HTTP WebSockets
Thrift
ZeroMQ
memcached
TCP
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Data Sources
Tokenisers
Retrieval Models
Structured Results
Language Bindings Transport
Shards
Replication Load Balancing Nodes
Distributed
Capture & Curate
Index
Streams
Analyse
Search
Transport
HTTP WebSockets
Thrift
ZeroMQ
memcached
TCP
Modules
Extend
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Data Sources
Tokenisers
Retrieval Models
Structured Results
Language Bindings Transport
Shards
Replication Load Balancing Nodes
Distributed
Zen EC2
Capture & Curate
Index
Streams
Analyse
Search
Transport
HTTP WebSockets
Thrift
ZeroMQ
memcached
TCP
Modules
Extend
Discovery
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Data Sources
Tokenisers
Retrieval Models
Structured Results
Language Bindings Transport
Shards
Replication Load Balancing Nodes
Distributed
Zen EC2
mvel Python
Groovy
Javascript
Capture & Curate
Index
Streams
Analyse
Search
Transport
HTTP WebSockets
Thrift
ZeroMQ
memcached
TCP
Modules
Extend
Script
Discovery
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Data Sources
Tokenisers
Retrieval Models
Structured Results
Language Bindings Transport
Shards
Replication Load Balancing Nodes
Distributed
Zen EC2
mvel Python
Groovy
Javascript
Capture & Curate
Index
Streams
Analyse
Search
Transport
HTTP WebSockets
Thrift
ZeroMQ
memcached
TCP
Modules
Extend
Script
Monitor
Discovery
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Data Sources
Tokenisers
Retrieval Models
Structured Results
Language Bindings Transport
Shards
Replication Load Balancing Nodes
Distributed
Zen EC2
mvel Python
Groovy
Javascript
Capture & Curate
Index
Streams
Analyse
Search
Transport
HTTP WebSockets
Thrift
ZeroMQ
memcached
TCP
Modules
Extend
Script
Monitor
Discovery
RESTful
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
REST API : http://host:port/[index]/[type]/[_action/id]
HTTP Methods : GET, POST, PUT, DELETE
Playing with ElasticSearch
Tuesday, 12 March 13
REST API : http://host:port/[index]/[type]/[_action/id]
HTTP Methods : GET, POST, PUT, DELETE
Playing with ElasticSearch
Some Denitions.....
• index -> Like a database
• type -> Like a table
• id -> Like a row in a table
Tuesday, 12 March 13
Playing with ElasticSearch
REST API : http://host:port/[index]/[type]/_action/id]
HTTP Methods : GET, POST, PUT, DELETE
curl -X POST "http://localhost:9200/articles/article/1" -d '
{
"title" : "ElasticSearch Understands JSON!",
"body" : "ElasticSearch not only “works” with JSON, it understands it! Let’s first ...",
"published_on" : "2013/02/06 10:00:00",
"tags" : ["search", "json"],
"author" : {
"first_name" : "Bruce",
"last_name" : "Croft",
"email" : "bruce@croft.org"
}
}'
request
Tuesday, 12 March 13
Playing with ElasticSearch
REST API : http://host:port/[index]/[type]/_action/id]
HTTP Methods : GET, POST, PUT, DELETE
curl -X POST "http://localhost:9200/articles/article/1" -d '
{
"title" : "ElasticSearch Understands JSON!",
"body" : "ElasticSearch not only “works” with JSON, it understands it! Let’s first ...",
"published_on" : "2013/02/06 10:00:00",
"tags" : ["search", "json"],
"author" : {
"first_name" : "Bruce",
"last_name" : "Croft",
"email" : "bruce@croft.org"
}
}'
{
"ok":true,
"_index":"articles",
"_type":"article",
"_id":"1",
"_version":1
}
requestresponse
Tuesday, 12 March 13
Playing with ElasticSearch
REST API : http://host:port/[index]/[type]/_action/id]
HTTP Methods : GET, POST, PUT, DELETE
request
curl -X GET "http://localhost:9200/articles/_search?q=author.first_name:BRUCE"
Tuesday, 12 March 13
Playing with ElasticSearch
REST API : http://host:port/[index]/[type]/_action/id]
HTTP Methods : GET, POST, PUT, DELETE
{
"took":1,
"timed_out":false,
"_shards":{"total":5,"successful":5,"failed":0},
"hits":{
"total":1,
"max_score":0.30685282,
"hits":[{
"_index":"articles",
"_type":"article",
"_id":"1",
"_score":0.30685282,
"_source" :
{
"title" : "ElasticSearch Understands JSON!",
"body" : "ElasticSearch not only “works” with JSON, it understands it! Let’s first ...",
"published_on" : "2013/02/06 10:00:00",
"tags" : ["search", "json"],
"author" : {
"first_name" : "Bruce",
"last_name" : "Croft",
"email" : "bruce@croft.org"
}
} } ] } }
request
curl -X GET "http://localhost:9200/articles/_search?q=author.first_name:BRUCE"
response
Tuesday, 12 March 13
Playing with ElasticSearch
REST API : http://host:port/[index]/[type]/_action/id]
HTTP Methods : GET, POST, PUT, DELETE
{
"took":1,
"timed_out":false,
"_shards":{"total":5,"successful":5,"failed":0},
"hits":{
"total":1,
"max_score":0.30685282,
"hits":[{
"_index":"articles",
"_type":"article",
"_id":"1",
"_score":0.30685282,
"_source" :
{
"title" : "ElasticSearch Understands JSON!",
"body" : "ElasticSearch not only “works” with JSON, it understands it! Let’s first ...",
"published_on" : "2013/02/06 10:00:00",
"tags" : ["search", "json"],
"author" : {
"first_name" : "Bruce",
"last_name" : "Croft",
"email" : "bruce@croft.org"
}
}
} ] } }
request
curl -X GET "http://localhost:9200/articles/_search?q=author.first_name:BRUCE"
response
Location & ID
Document Source
Total number of documents
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Data Sources
Tokenisers
Retrieval Models
Structured Results
Language Bindings Transport
Shards
Replication Load Balancing Nodes
Distributed
Zen EC2
mvel Python
Groovy
Javascript
Capture & Curate
Index
Streams
Analyse
Search
Transport
HTTP WebSockets
Thrift
ZeroMQ
memcached
TCP
Modules
Extend
Script
Monitor
Discovery
RESTful Micro Apps
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Data Sources
Tokenisers
Retrieval Models
Structured Results
Language Bindings Transport
Shards
Replication Load Balancing Nodes
Distributed
Zen EC2
mvel Python
Groovy
Javascript
HTML5/CSS3 Javascript
Capture & Curate
Index
Streams
Analyse
Search
Transport
HTTP WebSockets
Thrift
ZeroMQ
memcached
TCP
Modules
Extend
Script
Monitor
Discovery
RESTful Micro Apps
MemoryShared FS FS + MemoryLocal FS
Document Store
Playing with ElasticSearch
Tuesday, 12 March 13
Micro Applications
Rich, interactive single-page web applications powered by JavaScript, HTML and
CSS.
Tuesday, 12 March 13
Micro Applications
Tuesday, 12 March 13
Micro Applications
Tuesday, 12 March 13
Micro Applications
Tuesday, 12 March 13
Micro Applications
Tuesday, 12 March 13
Micro Applications
Rich, interactive single-page web applications powered by JavaScript, HTML
and CSS.
• A self-described framework for ambitious applications
• Rails-inspired “convention over configuration” approach
• High level abstractions, two-way binding and auto-updating templates
Data Model
ControllerRouter
View
Model Model
Controller
View View
View
Tuesday, 12 March 13
Micro Applications
Rich, interactive single-page web applications powered by JavaScript, HTML
and CSS.
• A self-described framework for ambitious applications
• Rails-inspired “convention over configuration” approach
• High level abstractions, two-way binding and auto-updating templates
• Ember Data
• Client side storage adapter
• Provides a common interface to persist application data
• RESTful HTTP service - primary endpoint
• Browser’s localStorage
• Emerging web databases such as IndexedDB
Data Model
ControllerRouter
View
Model Model
Controller
View View
View
Tuesday, 12 March 13
Playing with ElasticSearch
More Features.....
• document oriented • load balancing
• versioning • plugins
• parent/child docs • more_like_this
• scripting • multi_field mapping
• dynamic mapping templates • percolation
• bulk indexing • facets
• geo location • index aliases
• auto-complete • ngrams & edge-ngrams
• histograms • rivers
Tuesday, 12 March 13
Structured Data
Unstructured Data Data Renery
Message Queues
Inverted index
Transaction Log Versioning
Source Document
Data Sources
Tokenisers
Retrieval Models
Structured Results
Language Bindings Transport
Shards
Replication Load Balancing Nodes
Distributed
Zen EC2
mvel Python
Groovy
Javascript
HTML5/CSS3 Javascript
Capture & Curate
Index
Streams
Analyse
Search
Transport
HTTP WebSockets
Thrift
ZeroMQ
memcached
TCP
Modules
Extend
Script
Monitor
Discovery
RESTful Micro Apps
MemoryShared FS FS + MemoryLocal FS
Document Store
An alternative that would allow scientists or even casual users to perform analysis of
distributed data regardless of where the data resides.
Tuesday, 12 March 13
Search is the primary interface for getting
information today. Let’s build on it.
Search
DiscoverAnalyse
Tuesday, 12 March 13
Tuesday, 12 March 13
Data Management Tools - Challenges
• Interactive queries, data exploration or iterative query refinement poses
signicant challenges for current methods
• Building and running jobs and queries requires deep understanding of
cluster size and structure, job performance, etc.
• Time-consuming to set up, deploy and use
Tuesday, 12 March 13

Mais conteĂşdo relacionado

Mais procurados

Introduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of LuceneIntroduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of LuceneRahul Jain
 
ElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learnedElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learnedBeyondTrees
 
Elasticsearch in 15 minutes
Elasticsearch in 15 minutesElasticsearch in 15 minutes
Elasticsearch in 15 minutesDavid Pilato
 
ElasticSearch Basic Introduction
ElasticSearch Basic IntroductionElasticSearch Basic Introduction
ElasticSearch Basic IntroductionMayur Rathod
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to ElasticsearchSperasoft
 
Intro to elasticsearch
Intro to elasticsearchIntro to elasticsearch
Intro to elasticsearchJoey Wen
 
Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Philips Kokoh Prasetyo
 
Elasticsearch Introduction to Data model, Search & Aggregations
Elasticsearch Introduction to Data model, Search & AggregationsElasticsearch Introduction to Data model, Search & Aggregations
Elasticsearch Introduction to Data model, Search & AggregationsAlaa Elhadba
 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseRobert Lujo
 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solrmacrochen
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to ElasticsearchBo Andersen
 
Philly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Philly PHP: April '17 Elastic Search Introduction by Aditya BhamidpatiPhilly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Philly PHP: April '17 Elastic Search Introduction by Aditya BhamidpatiRobert Calcavecchia
 
Lucene basics
Lucene basicsLucene basics
Lucene basicsNitin Pande
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to ElasticsearchJason Austin
 
Introduction to Lucene & Solr and Usecases
Introduction to Lucene & Solr and UsecasesIntroduction to Lucene & Solr and Usecases
Introduction to Lucene & Solr and UsecasesRahul Jain
 
Elasticsearch first-steps
Elasticsearch first-stepsElasticsearch first-steps
Elasticsearch first-stepsMatteo Moci
 
Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Vinay Kumar
 

Mais procurados (19)

Introduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of LuceneIntroduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of Lucene
 
ElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learnedElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learned
 
Elasticsearch in 15 minutes
Elasticsearch in 15 minutesElasticsearch in 15 minutes
Elasticsearch in 15 minutes
 
ElasticSearch Basic Introduction
ElasticSearch Basic IntroductionElasticSearch Basic Introduction
ElasticSearch Basic Introduction
 
Elasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetupElasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetup
 
Elasticsearch Introduction
Elasticsearch IntroductionElasticsearch Introduction
Elasticsearch Introduction
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Intro to elasticsearch
Intro to elasticsearchIntro to elasticsearch
Intro to elasticsearch
 
Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!
 
Elasticsearch Introduction to Data model, Search & Aggregations
Elasticsearch Introduction to Data model, Search & AggregationsElasticsearch Introduction to Data model, Search & Aggregations
Elasticsearch Introduction to Data model, Search & Aggregations
 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document database
 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solr
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Philly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Philly PHP: April '17 Elastic Search Introduction by Aditya BhamidpatiPhilly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Philly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
 
Lucene basics
Lucene basicsLucene basics
Lucene basics
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Introduction to Lucene & Solr and Usecases
Introduction to Lucene & Solr and UsecasesIntroduction to Lucene & Solr and Usecases
Introduction to Lucene & Solr and Usecases
 
Elasticsearch first-steps
Elasticsearch first-stepsElasticsearch first-steps
Elasticsearch first-steps
 
Roaring with elastic search sangam2018
Roaring with elastic search sangam2018Roaring with elastic search sangam2018
Roaring with elastic search sangam2018
 

Semelhante a elasticsearch

Drupal and Apache Stanbol. What if you could reliably do autotagging?
Drupal and Apache Stanbol. What if you could reliably do autotagging?Drupal and Apache Stanbol. What if you could reliably do autotagging?
Drupal and Apache Stanbol. What if you could reliably do autotagging?Gabriel Dragomir
 
Using ElasticSearch as a fast, flexible, and scalable solution to search occu...
Using ElasticSearch as a fast, flexible, and scalable solution to search occu...Using ElasticSearch as a fast, flexible, and scalable solution to search occu...
Using ElasticSearch as a fast, flexible, and scalable solution to search occu...kristgen
 
Introduction to NoSQL with MongoDB
Introduction to NoSQL with MongoDBIntroduction to NoSQL with MongoDB
Introduction to NoSQL with MongoDBHector Correa
 
Mongo db php_shaken_not_stirred_joomlafrappe
Mongo db php_shaken_not_stirred_joomlafrappeMongo db php_shaken_not_stirred_joomlafrappe
Mongo db php_shaken_not_stirred_joomlafrappeSpyros Passas
 
Adf walkthrough
Adf walkthroughAdf walkthrough
Adf walkthroughMSDEVMTL
 
DataGraft Platform: RDF Database-as-a-Service
DataGraft Platform: RDF Database-as-a-ServiceDataGraft Platform: RDF Database-as-a-Service
DataGraft Platform: RDF Database-as-a-ServiceMarin Dimitrov
 
Elasticsearch
ElasticsearchElasticsearch
ElasticsearchDivij Sehgal
 
Visualizing Austin's data with Elasticsearch and Kibana
Visualizing Austin's data with Elasticsearch and KibanaVisualizing Austin's data with Elasticsearch and Kibana
Visualizing Austin's data with Elasticsearch and KibanaObjectRocket
 
Moving Library Metadata Toward Linked Data: Opportunities Provided by the eX...
Moving Library Metadata Toward Linked Data:  Opportunities Provided by the eX...Moving Library Metadata Toward Linked Data:  Opportunities Provided by the eX...
Moving Library Metadata Toward Linked Data: Opportunities Provided by the eX...Jennifer Bowen
 
Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"George Stathis
 
An Intro to Elasticsearch and Kibana
An Intro to Elasticsearch and KibanaAn Intro to Elasticsearch and Kibana
An Intro to Elasticsearch and KibanaObjectRocket
 
NoSQL Now 2013 Presentation
NoSQL Now 2013 PresentationNoSQL Now 2013 Presentation
NoSQL Now 2013 PresentationArjen Schoneveld
 
Solr Application Development Tutorial
Solr Application Development TutorialSolr Application Development Tutorial
Solr Application Development TutorialErik Hatcher
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring DataEric Bottard
 
From discovering to trusting data
From discovering to trusting dataFrom discovering to trusting data
From discovering to trusting datamarkgrover
 
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)Pat Patterson
 
Linked Data and Locah, UKSG2011
Linked Data and Locah, UKSG2011 Linked Data and Locah, UKSG2011
Linked Data and Locah, UKSG2011 Jane Stevenson
 
elasticsearch basics workshop
elasticsearch basics workshopelasticsearch basics workshop
elasticsearch basics workshopMathieu Elie
 
RESTful JSON web databases
RESTful JSON web databasesRESTful JSON web databases
RESTful JSON web databaseskriszyp
 
The RESTful Soa Datagrid with Oracle
The RESTful Soa Datagrid with OracleThe RESTful Soa Datagrid with Oracle
The RESTful Soa Datagrid with OracleEmiliano Pecis
 

Semelhante a elasticsearch (20)

Drupal and Apache Stanbol. What if you could reliably do autotagging?
Drupal and Apache Stanbol. What if you could reliably do autotagging?Drupal and Apache Stanbol. What if you could reliably do autotagging?
Drupal and Apache Stanbol. What if you could reliably do autotagging?
 
Using ElasticSearch as a fast, flexible, and scalable solution to search occu...
Using ElasticSearch as a fast, flexible, and scalable solution to search occu...Using ElasticSearch as a fast, flexible, and scalable solution to search occu...
Using ElasticSearch as a fast, flexible, and scalable solution to search occu...
 
Introduction to NoSQL with MongoDB
Introduction to NoSQL with MongoDBIntroduction to NoSQL with MongoDB
Introduction to NoSQL with MongoDB
 
Mongo db php_shaken_not_stirred_joomlafrappe
Mongo db php_shaken_not_stirred_joomlafrappeMongo db php_shaken_not_stirred_joomlafrappe
Mongo db php_shaken_not_stirred_joomlafrappe
 
Adf walkthrough
Adf walkthroughAdf walkthrough
Adf walkthrough
 
DataGraft Platform: RDF Database-as-a-Service
DataGraft Platform: RDF Database-as-a-ServiceDataGraft Platform: RDF Database-as-a-Service
DataGraft Platform: RDF Database-as-a-Service
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Visualizing Austin's data with Elasticsearch and Kibana
Visualizing Austin's data with Elasticsearch and KibanaVisualizing Austin's data with Elasticsearch and Kibana
Visualizing Austin's data with Elasticsearch and Kibana
 
Moving Library Metadata Toward Linked Data: Opportunities Provided by the eX...
Moving Library Metadata Toward Linked Data:  Opportunities Provided by the eX...Moving Library Metadata Toward Linked Data:  Opportunities Provided by the eX...
Moving Library Metadata Toward Linked Data: Opportunities Provided by the eX...
 
Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"
 
An Intro to Elasticsearch and Kibana
An Intro to Elasticsearch and KibanaAn Intro to Elasticsearch and Kibana
An Intro to Elasticsearch and Kibana
 
NoSQL Now 2013 Presentation
NoSQL Now 2013 PresentationNoSQL Now 2013 Presentation
NoSQL Now 2013 Presentation
 
Solr Application Development Tutorial
Solr Application Development TutorialSolr Application Development Tutorial
Solr Application Development Tutorial
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring Data
 
From discovering to trusting data
From discovering to trusting dataFrom discovering to trusting data
From discovering to trusting data
 
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)
 
Linked Data and Locah, UKSG2011
Linked Data and Locah, UKSG2011 Linked Data and Locah, UKSG2011
Linked Data and Locah, UKSG2011
 
elasticsearch basics workshop
elasticsearch basics workshopelasticsearch basics workshop
elasticsearch basics workshop
 
RESTful JSON web databases
RESTful JSON web databasesRESTful JSON web databases
RESTful JSON web databases
 
The RESTful Soa Datagrid with Oracle
The RESTful Soa Datagrid with OracleThe RESTful Soa Datagrid with Oracle
The RESTful Soa Datagrid with Oracle
 

Último

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Último (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

elasticsearch

  • 1. Satish Mohan Your Data, Your Search Tuesday, 12 March 13
  • 2. Enterprises today are collecting and have access to more data points in their ecosystem then ever. Tuesday, 12 March 13
  • 3. File Store Example File / Folder Navigation Integration - Mount Points Limited Metadata Hierarchical Structure Regular File Store Tuesday, 12 March 13
  • 4. • Find a document from December 2011 about transfer containing proposal and David • Find the document received from John containing David and transfer • Find the revisions of transfer document File Store Example File / Folder Navigation Integration - Mount Points Limited Metadata Hierarchical Structure Tuesday, 12 March 13
  • 5. • Find a document from December 2011 about transfer containing proposal and David • Find the document received from John containing David and transfer • Find the revisions of transfer document File Store Example File / Folder Navigation Integration - Mount Points Limited Metadata Hierarchical Structure Collections / Documents Local / Distributed Integrations Semantic Metadata Declarative Queries Automatic Indexing Provenance Automatic Organization Virtual Collections Regular File Store Intelligent File Store Tuesday, 12 March 13
  • 6. ElasticSearch is an open source, scalable, distributed, cloud-ready, highly-available full-text search engine and database with powerful aggregation features, communicating by JSON over RESTful HTTP, based on Apache Lucene. Tuesday, 12 March 13
  • 7. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Capture & Curate Index Streams Analyse Search MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 8. Playing with ElasticSearch Rivers • Data flows from sources using Rivers • Continues to add data as it flows • Can be added, removed, congured dynamically Tuesday, 12 March 13
  • 9. Playing with ElasticSearch Rivers • Data flows from sources using Rivers • Continues to add data as it flows • Can be added, removed, congured dynamically ES NodeData Source Data Source Data Source River River River ES Index Tuesday, 12 March 13
  • 10. Playing with ElasticSearch Rivers • Data flows from sources using Rivers • Continues to add data as it flows • Can be added, removed, congured dynamically ES NodeData Source Data Source Data Source River River River ES Index Tuesday, 12 March 13
  • 11. Playing with ElasticSearch River Modules • CouchDB • JDBC • MongoDB • Solr • Wikipedia • Jira • Twitter • CSV • ActiveMQ • FileSystem • RabbitMQ • SysInfo • NSQ • Logs • RSS • LDAP Tuesday, 12 March 13
  • 12. Playing with ElasticSearch Index • Describes document structure to the search engine • Automatically created with sensible defaults • Explicit mapping can be provided (generally, a good idea) • Simple: • string, integer/long, float/double, boolean, and null • Complex: • array, object Tuesday, 12 March 13
  • 13. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Shards Replication Load Balancing Nodes Distributed Capture & Curate Index Streams Analyse Search MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 14. Playing with ElasticSearch Distributed Model • Number of shards is the scaling unit [ #shards > #nodes ] • each one is a separate Lucene index thus, many per-index settings are available • Moving shards around is faster than splitting them (no reindex) • Replicas also serves reads, allowing to scale search • # of replicas can be updated dynamically after index creation Node 1 user (0) user (1) Node 2 user1 (0) user (1) Node 3 user (0) user2 (0) Automatic Discovery Protocol Replica Shard Tuesday, 12 March 13
  • 15. Playing with ElasticSearch Index Aliases curl -X POST 'http://localhost:9200/_aliases' -d '{ "actions" : [ { "add" : { “index” : “users”, “alias” : “user_1”, “filter” : { “term” : { “user” : “1” } }, “routing” : “1” } } ] }' Indexing and search happens on the alias, with automatic use of routing and ltering Tuesday, 12 March 13
  • 16. Playing with ElasticSearch Index Aliases curl -X POST 'http://localhost:9200/_aliases' -d ' { "actions" : [ { "add" : { "index" : "user_1", "alias" : "users" } }, { "add" : { "index" : "user_2", "alias" : "users" } } ] }' users user_1 user_2 curl -X GET "http://localhost:9200/users/_search?q=..." Tuesday, 12 March 13
  • 17. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Shards Replication Load Balancing Nodes Distributed Capture & Curate Index Streams Analyse Search Transport HTTP WebSockets Thrift ZeroMQ memcached TCP MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 18. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Data Sources Tokenisers Retrieval Models Structured Results Language Bindings Transport Shards Replication Load Balancing Nodes Distributed Capture & Curate Index Streams Analyse Search Transport HTTP WebSockets Thrift ZeroMQ memcached TCP Modules Extend MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 19. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Data Sources Tokenisers Retrieval Models Structured Results Language Bindings Transport Shards Replication Load Balancing Nodes Distributed Zen EC2 Capture & Curate Index Streams Analyse Search Transport HTTP WebSockets Thrift ZeroMQ memcached TCP Modules Extend Discovery MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 20. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Data Sources Tokenisers Retrieval Models Structured Results Language Bindings Transport Shards Replication Load Balancing Nodes Distributed Zen EC2 mvel Python Groovy Javascript Capture & Curate Index Streams Analyse Search Transport HTTP WebSockets Thrift ZeroMQ memcached TCP Modules Extend Script Discovery MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 21. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Data Sources Tokenisers Retrieval Models Structured Results Language Bindings Transport Shards Replication Load Balancing Nodes Distributed Zen EC2 mvel Python Groovy Javascript Capture & Curate Index Streams Analyse Search Transport HTTP WebSockets Thrift ZeroMQ memcached TCP Modules Extend Script Monitor Discovery MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 22. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Data Sources Tokenisers Retrieval Models Structured Results Language Bindings Transport Shards Replication Load Balancing Nodes Distributed Zen EC2 mvel Python Groovy Javascript Capture & Curate Index Streams Analyse Search Transport HTTP WebSockets Thrift ZeroMQ memcached TCP Modules Extend Script Monitor Discovery RESTful MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 23. REST API : http://host:port/[index]/[type]/[_action/id] HTTP Methods : GET, POST, PUT, DELETE Playing with ElasticSearch Tuesday, 12 March 13
  • 24. REST API : http://host:port/[index]/[type]/[_action/id] HTTP Methods : GET, POST, PUT, DELETE Playing with ElasticSearch Some Denitions..... • index -> Like a database • type -> Like a table • id -> Like a row in a table Tuesday, 12 March 13
  • 25. Playing with ElasticSearch REST API : http://host:port/[index]/[type]/_action/id] HTTP Methods : GET, POST, PUT, DELETE curl -X POST "http://localhost:9200/articles/article/1" -d ' { "title" : "ElasticSearch Understands JSON!", "body" : "ElasticSearch not only “works” with JSON, it understands it! Let’s first ...", "published_on" : "2013/02/06 10:00:00", "tags" : ["search", "json"], "author" : { "first_name" : "Bruce", "last_name" : "Croft", "email" : "bruce@croft.org" } }' request Tuesday, 12 March 13
  • 26. Playing with ElasticSearch REST API : http://host:port/[index]/[type]/_action/id] HTTP Methods : GET, POST, PUT, DELETE curl -X POST "http://localhost:9200/articles/article/1" -d ' { "title" : "ElasticSearch Understands JSON!", "body" : "ElasticSearch not only “works” with JSON, it understands it! Let’s first ...", "published_on" : "2013/02/06 10:00:00", "tags" : ["search", "json"], "author" : { "first_name" : "Bruce", "last_name" : "Croft", "email" : "bruce@croft.org" } }' { "ok":true, "_index":"articles", "_type":"article", "_id":"1", "_version":1 } requestresponse Tuesday, 12 March 13
  • 27. Playing with ElasticSearch REST API : http://host:port/[index]/[type]/_action/id] HTTP Methods : GET, POST, PUT, DELETE request curl -X GET "http://localhost:9200/articles/_search?q=author.first_name:BRUCE" Tuesday, 12 March 13
  • 28. Playing with ElasticSearch REST API : http://host:port/[index]/[type]/_action/id] HTTP Methods : GET, POST, PUT, DELETE { "took":1, "timed_out":false, "_shards":{"total":5,"successful":5,"failed":0}, "hits":{ "total":1, "max_score":0.30685282, "hits":[{ "_index":"articles", "_type":"article", "_id":"1", "_score":0.30685282, "_source" : { "title" : "ElasticSearch Understands JSON!", "body" : "ElasticSearch not only “works” with JSON, it understands it! Let’s first ...", "published_on" : "2013/02/06 10:00:00", "tags" : ["search", "json"], "author" : { "first_name" : "Bruce", "last_name" : "Croft", "email" : "bruce@croft.org" } } } ] } } request curl -X GET "http://localhost:9200/articles/_search?q=author.first_name:BRUCE" response Tuesday, 12 March 13
  • 29. Playing with ElasticSearch REST API : http://host:port/[index]/[type]/_action/id] HTTP Methods : GET, POST, PUT, DELETE { "took":1, "timed_out":false, "_shards":{"total":5,"successful":5,"failed":0}, "hits":{ "total":1, "max_score":0.30685282, "hits":[{ "_index":"articles", "_type":"article", "_id":"1", "_score":0.30685282, "_source" : { "title" : "ElasticSearch Understands JSON!", "body" : "ElasticSearch not only “works” with JSON, it understands it! Let’s first ...", "published_on" : "2013/02/06 10:00:00", "tags" : ["search", "json"], "author" : { "first_name" : "Bruce", "last_name" : "Croft", "email" : "bruce@croft.org" } } } ] } } request curl -X GET "http://localhost:9200/articles/_search?q=author.first_name:BRUCE" response Location & ID Document Source Total number of documents Tuesday, 12 March 13
  • 30. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Data Sources Tokenisers Retrieval Models Structured Results Language Bindings Transport Shards Replication Load Balancing Nodes Distributed Zen EC2 mvel Python Groovy Javascript Capture & Curate Index Streams Analyse Search Transport HTTP WebSockets Thrift ZeroMQ memcached TCP Modules Extend Script Monitor Discovery RESTful Micro Apps MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 31. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Data Sources Tokenisers Retrieval Models Structured Results Language Bindings Transport Shards Replication Load Balancing Nodes Distributed Zen EC2 mvel Python Groovy Javascript HTML5/CSS3 Javascript Capture & Curate Index Streams Analyse Search Transport HTTP WebSockets Thrift ZeroMQ memcached TCP Modules Extend Script Monitor Discovery RESTful Micro Apps MemoryShared FS FS + MemoryLocal FS Document Store Playing with ElasticSearch Tuesday, 12 March 13
  • 32. Micro Applications Rich, interactive single-page web applications powered by JavaScript, HTML and CSS. Tuesday, 12 March 13
  • 37. Micro Applications Rich, interactive single-page web applications powered by JavaScript, HTML and CSS. • A self-described framework for ambitious applications • Rails-inspired “convention over conguration” approach • High level abstractions, two-way binding and auto-updating templates Data Model ControllerRouter View Model Model Controller View View View Tuesday, 12 March 13
  • 38. Micro Applications Rich, interactive single-page web applications powered by JavaScript, HTML and CSS. • A self-described framework for ambitious applications • Rails-inspired “convention over conguration” approach • High level abstractions, two-way binding and auto-updating templates • Ember Data • Client side storage adapter • Provides a common interface to persist application data • RESTful HTTP service - primary endpoint • Browser’s localStorage • Emerging web databases such as IndexedDB Data Model ControllerRouter View Model Model Controller View View View Tuesday, 12 March 13
  • 39. Playing with ElasticSearch More Features..... • document oriented • load balancing • versioning • plugins • parent/child docs • more_like_this • scripting • multi_eld mapping • dynamic mapping templates • percolation • bulk indexing • facets • geo location • index aliases • auto-complete • ngrams & edge-ngrams • histograms • rivers Tuesday, 12 March 13
  • 40. Structured Data Unstructured Data Data Renery Message Queues Inverted index Transaction Log Versioning Source Document Data Sources Tokenisers Retrieval Models Structured Results Language Bindings Transport Shards Replication Load Balancing Nodes Distributed Zen EC2 mvel Python Groovy Javascript HTML5/CSS3 Javascript Capture & Curate Index Streams Analyse Search Transport HTTP WebSockets Thrift ZeroMQ memcached TCP Modules Extend Script Monitor Discovery RESTful Micro Apps MemoryShared FS FS + MemoryLocal FS Document Store An alternative that would allow scientists or even casual users to perform analysis of distributed data regardless of where the data resides. Tuesday, 12 March 13
  • 41. Search is the primary interface for getting information today. Let’s build on it. Search DiscoverAnalyse Tuesday, 12 March 13
  • 43. Data Management Tools - Challenges • Interactive queries, data exploration or iterative query renement poses signicant challenges for current methods • Building and running jobs and queries requires deep understanding of cluster size and structure, job performance, etc. • Time-consuming to set up, deploy and use Tuesday, 12 March 13