SlideShare a Scribd company logo
ELASTICSEARCH

The “new school” search/
analytics engine
What is it and what you can
do with it
About me - @nignatov
• Founder/CEO/TA/PM/AM… at Node Spark
• Using PHP since 2006
• Using Drupal since 2009
• Love to experiment with new technologies
• The Godfather of Elasticsearch Connector
After the session you
should know:
• What is Elasticsearch
• How Elasticsearch is working in general
• How you can integrate it with PHP
• If time - share some ideas of possible
use cases.
Shay Banon
• http://thedudeabides.com/
• https://github.com/kimchy
• https://twitter.com/kimchy/

• Founder & CTO at Elastic 

https://elastic.co
Who made Elasticsearch?
Why “new school”?
Why “new school”?
Why “new school”?
Who else is using it?
Who else is using it?
• Distributed out of the box - Incredible easy to make cluster, just
start new node!
• High availability
• Real time index/search
• REST API with JSON
• Written in Java, build on top of Apache Lucene and Open Source

http://github.com/elasticsearch/elasticsearch
• Schema free
• Document oriented
What is Elasticsearch?
Vertical and horizontal
scaling
E01
E01
E01 E02 E03 E04
+
E01
ELK Stack
https://www.elastic.co/webinars/introduction-elk-stack
Some associations
Some associations
RELATIONAL DB ELASTICSEARCH
Database Index
Tables Types
Rows Documents
Column Field
How to install it?
How to install it?
How to install it?
Support matrix
… or Elastic Cloud
Elasticsearch in action
Elasticsearch
Demo!
https://www.elastic.co/webinars/get-started-with-
elasticsearch
https://github.com/nodespark/talks/blob/master/
PHPUG.md
How distributed works?
Node
1
PUT /twitter

index:
number_of_shards:3
number_of_replicas:1
How distributed works?
Node
1
PUT /twitter

index:
number_of_shards:3
number_of_replicas:1
1P 2P
3P
How distributed works?
Node

2
Node
1
1P 2P
3P
How distributed works?
Node

2
Node
1
1P
3P
2P 1R
3R
2R
How distributed works?
Node

2
Node
1
1P
3P
2P 1R
3R
2R
Node

3
How distributed works?
Node

2
Node
1
1P 2P2R
Node

3
3P 1R3R
How distributed works?
Node

2
Node
1
1P 2P2R
Node

3
3P 1R3R
How distributed works?
Node
1
1P 2R
Node

3
3P 1R
How distributed works?
Node
1
1P
Node

3
3P 1R
2R3R
2P
Distributed indexing
Node

2
Node
1
PUT /twitter/tweet/1

{….}
1P 2P2R
Node

3
3P 1R3R
Distributed indexing
Node

2
Node
1
PUT /twitter/tweet/1

{….}
1P 2P2R
Node

3
3P 1R3R
Distributed indexing
Node

2
Node
1
PUT /twitter/tweet/1

{….}
1P 2P2R
Node

3
3P 1R3R
Distributed indexing
Node

2
Node
1
PUT /twitter/tweet/1

{….}
1P 2P2R
Node

3
3P 1R3R
Distributed indexing
Node

2
Node
1
PUT /twitter/tweet/1

{….}
1P 2P2R
Node

3
3P 1R3R
Distributed indexing
Node

2
Node
1
PUT /twitter/tweet/1

{….}
1P 2P2R
Node

3
3P 1R3R
Distributed indexing
Distributed Search
Node

2
Node
1
GET /twitter/_search?q=php
1P 2P2R
Node

3
3P 1R3R
Distributed Search
Node

2
Node
1
GET /twitter/_search?q=php
1P 2P2R
Node

3
3P 1R3R
Distributed Search
Node

2
Node
1
GET /twitter/_search?q=php
1P 2P2R
Node

3
3P 1R3R
Distributed Search
Node

2
Node
1
GET /twitter/_search?q=php
1P 2P2R
Node

3
3P 1R3R
Distributed Search
PHP Libraries
https://github.com/elastic/elasticsearch-php
https://github.com/ruflin/Elastica
Brainstorm – Content hub
Site
X
Site
Y
Site
Z
Content
Hub
Feed
Site
Brainstorm – Headless
NodeJS
Data
Warehouse
Drupal/Wordpress
CMS
Frontend
Brainstorm – SLA Hub
Site
01
Site
02
Site
03
Site
04
Site
05
Support Department
Monitoring
Brainstorm -
Async storage
Web
01
Web
02
Web
03
Web
04
Web
05
Thank you!
Thank you!
Questions
?

More Related Content

What's hot

Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7
Derek Jacoby
 
Automating angular
Automating angularAutomating angular
Automating angular
Charles Max Wood
 
LeanStartup:Research is cheaper than development
LeanStartup:Research is cheaper than developmentLeanStartup:Research is cheaper than development
LeanStartup:Research is cheaper than development
John McCaffrey
 
The New JavaScript: ES6
The New JavaScript: ES6The New JavaScript: ES6
The New JavaScript: ES6
Rob Eisenberg
 
Prawn: Creating PDF in Ruby
Prawn: Creating PDF in RubyPrawn: Creating PDF in Ruby
Prawn: Creating PDF in Ruby
Tom Klaasen
 
Untangling - fall2017 - week5
Untangling - fall2017 - week5Untangling - fall2017 - week5
Untangling - fall2017 - week5
Derek Jacoby
 
Untangling - fall2017 - week6
Untangling - fall2017 - week6Untangling - fall2017 - week6
Untangling - fall2017 - week6
Derek Jacoby
 
Snakes on the Web; Developing web applications in python
Snakes on the Web; Developing web applications in pythonSnakes on the Web; Developing web applications in python
Snakes on the Web; Developing web applications in python
Naail AbdulRahman
 
Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)
Mike Schinkel
 
1st NoSQL Asia Event in Malaysia
1st NoSQL Asia Event in Malaysia1st NoSQL Asia Event in Malaysia
1st NoSQL Asia Event in Malaysia
Mark Smalley
 
Digital Publishing Made Easy with the OSCI Toolkit
 Digital Publishing Made Easy with the OSCI Toolkit Digital Publishing Made Easy with the OSCI Toolkit
Digital Publishing Made Easy with the OSCI Toolkit
Kyle Jaebker
 
ITB2016 - Mixing up the front end with ColdBox elixir
ITB2016 - Mixing up the front end with ColdBox elixirITB2016 - Mixing up the front end with ColdBox elixir
ITB2016 - Mixing up the front end with ColdBox elixir
Ortus Solutions, Corp
 
Unlocking the Magical Powers of WP_Query
Unlocking the Magical Powers of WP_QueryUnlocking the Magical Powers of WP_Query
Unlocking the Magical Powers of WP_Query
Dustin Filippini
 
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
Calvin Tan
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Radhika Puthiyetath
 
Presentation polyconf
Presentation polyconfPresentation polyconf
Presentation polyconf
Przemyslaw Krowinski
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
elliando dias
 
AWS Users Meetup April 2015
AWS Users Meetup April 2015AWS Users Meetup April 2015
AWS Users Meetup April 2015
Jervin Real
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
elliando dias
 
Using AWS, Terraform, and Ansible to Automate Splunk at Scale
Using AWS, Terraform, and Ansible to Automate Splunk at ScaleUsing AWS, Terraform, and Ansible to Automate Splunk at Scale
Using AWS, Terraform, and Ansible to Automate Splunk at Scale
Data Works MD
 

What's hot (20)

Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7
 
Automating angular
Automating angularAutomating angular
Automating angular
 
LeanStartup:Research is cheaper than development
LeanStartup:Research is cheaper than developmentLeanStartup:Research is cheaper than development
LeanStartup:Research is cheaper than development
 
The New JavaScript: ES6
The New JavaScript: ES6The New JavaScript: ES6
The New JavaScript: ES6
 
Prawn: Creating PDF in Ruby
Prawn: Creating PDF in RubyPrawn: Creating PDF in Ruby
Prawn: Creating PDF in Ruby
 
Untangling - fall2017 - week5
Untangling - fall2017 - week5Untangling - fall2017 - week5
Untangling - fall2017 - week5
 
Untangling - fall2017 - week6
Untangling - fall2017 - week6Untangling - fall2017 - week6
Untangling - fall2017 - week6
 
Snakes on the Web; Developing web applications in python
Snakes on the Web; Developing web applications in pythonSnakes on the Web; Developing web applications in python
Snakes on the Web; Developing web applications in python
 
Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)
 
1st NoSQL Asia Event in Malaysia
1st NoSQL Asia Event in Malaysia1st NoSQL Asia Event in Malaysia
1st NoSQL Asia Event in Malaysia
 
Digital Publishing Made Easy with the OSCI Toolkit
 Digital Publishing Made Easy with the OSCI Toolkit Digital Publishing Made Easy with the OSCI Toolkit
Digital Publishing Made Easy with the OSCI Toolkit
 
ITB2016 - Mixing up the front end with ColdBox elixir
ITB2016 - Mixing up the front end with ColdBox elixirITB2016 - Mixing up the front end with ColdBox elixir
ITB2016 - Mixing up the front end with ColdBox elixir
 
Unlocking the Magical Powers of WP_Query
Unlocking the Magical Powers of WP_QueryUnlocking the Magical Powers of WP_Query
Unlocking the Magical Powers of WP_Query
 
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
Why Node, Express and Postgres - presented 23 Feb 15, Talkjs, Microsoft Audit...
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
 
Presentation polyconf
Presentation polyconfPresentation polyconf
Presentation polyconf
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
AWS Users Meetup April 2015
AWS Users Meetup April 2015AWS Users Meetup April 2015
AWS Users Meetup April 2015
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
Using AWS, Terraform, and Ansible to Automate Splunk at Scale
Using AWS, Terraform, and Ansible to Automate Splunk at ScaleUsing AWS, Terraform, and Ansible to Automate Splunk at Scale
Using AWS, Terraform, and Ansible to Automate Splunk at Scale
 

Viewers also liked

Integrating Elastic and Apache Spark - Elastic London Meetup (2015-09-24)
Integrating Elastic and Apache Spark - Elastic London Meetup (2015-09-24)Integrating Elastic and Apache Spark - Elastic London Meetup (2015-09-24)
Integrating Elastic and Apache Spark - Elastic London Meetup (2015-09-24)
Neil Andrassy
 
2015-06-15 Large-Scale Elastic-Net Regularized Generalized Linear Models at S...
2015-06-15 Large-Scale Elastic-Net Regularized Generalized Linear Models at S...2015-06-15 Large-Scale Elastic-Net Regularized Generalized Linear Models at S...
2015-06-15 Large-Scale Elastic-Net Regularized Generalized Linear Models at S...
DB Tsai
 
2014 spark with elastic search
2014   spark with elastic search2014   spark with elastic search
2014 spark with elastic search
Henry Saputra
 
Spark Summit EU talk by Tug Grall
Spark Summit EU talk by Tug GrallSpark Summit EU talk by Tug Grall
Spark Summit EU talk by Tug Grall
Spark Summit
 
Spark Summit EU talk by Shaun Klopfenstein and Neelesh Shastry
Spark Summit EU talk by Shaun Klopfenstein and Neelesh ShastrySpark Summit EU talk by Shaun Klopfenstein and Neelesh Shastry
Spark Summit EU talk by Shaun Klopfenstein and Neelesh Shastry
Spark Summit
 
Elasticsearch and Spark
Elasticsearch and SparkElasticsearch and Spark
Elasticsearch and Spark
Audible, Inc.
 

Viewers also liked (6)

Integrating Elastic and Apache Spark - Elastic London Meetup (2015-09-24)
Integrating Elastic and Apache Spark - Elastic London Meetup (2015-09-24)Integrating Elastic and Apache Spark - Elastic London Meetup (2015-09-24)
Integrating Elastic and Apache Spark - Elastic London Meetup (2015-09-24)
 
2015-06-15 Large-Scale Elastic-Net Regularized Generalized Linear Models at S...
2015-06-15 Large-Scale Elastic-Net Regularized Generalized Linear Models at S...2015-06-15 Large-Scale Elastic-Net Regularized Generalized Linear Models at S...
2015-06-15 Large-Scale Elastic-Net Regularized Generalized Linear Models at S...
 
2014 spark with elastic search
2014   spark with elastic search2014   spark with elastic search
2014 spark with elastic search
 
Spark Summit EU talk by Tug Grall
Spark Summit EU talk by Tug GrallSpark Summit EU talk by Tug Grall
Spark Summit EU talk by Tug Grall
 
Spark Summit EU talk by Shaun Klopfenstein and Neelesh Shastry
Spark Summit EU talk by Shaun Klopfenstein and Neelesh ShastrySpark Summit EU talk by Shaun Klopfenstein and Neelesh Shastry
Spark Summit EU talk by Shaun Klopfenstein and Neelesh Shastry
 
Elasticsearch and Spark
Elasticsearch and SparkElasticsearch and Spark
Elasticsearch and Spark
 

Similar to Elasticsearch PHP UG BG

Drupal and Elasticsearch
Drupal and ElasticsearchDrupal and Elasticsearch
Drupal and Elasticsearch
Nikolay Ignatov
 
DrupalANDElasticsearch
DrupalANDElasticsearchDrupalANDElasticsearch
DrupalANDElasticsearch
Nikolay Ignatov
 
Elastic search
Elastic searchElastic search
Elastic search
Ahmet SEĞMEN
 
Building the Next Generation Teaching and Learning Environment
Building the Next Generation Teaching and Learning EnvironmentBuilding the Next Generation Teaching and Learning Environment
Building the Next Generation Teaching and Learning Environment
Charles Severance
 
An Experimentation Toolkit for Robotics Control and Manipulation Tasks using ...
An Experimentation Toolkit for Robotics Control and Manipulation Tasks using ...An Experimentation Toolkit for Robotics Control and Manipulation Tasks using ...
An Experimentation Toolkit for Robotics Control and Manipulation Tasks using ...
Ashwin Reddy
 
Why contribute to open source projects
Why contribute to open source projectsWhy contribute to open source projects
Why contribute to open source projects
Kranti Parisa
 
Getting a Neural Network Up and Running with OpenLab
Getting a Neural Network Up and Running with OpenLabGetting a Neural Network Up and Running with OpenLab
Getting a Neural Network Up and Running with OpenLab
Melvin Hillsman
 
Accelerate the ROI of PHP in your Enterprise
	Accelerate the ROI of PHP in your Enterprise	Accelerate the ROI of PHP in your Enterprise
Accelerate the ROI of PHP in your Enterprise
Enterprise PHP Center
 
JupyterHub - A "Thing Explainer" Overview
JupyterHub - A "Thing Explainer" OverviewJupyterHub - A "Thing Explainer" Overview
JupyterHub - A "Thing Explainer" Overview
Carol Willing
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010
Joel Gascoigne
 
FuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshopFuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshop
Fotis Alexandrou
 
Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016
Jani Tarvainen
 
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecerTDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
Stefan Teixeira
 
Enhance WordPress Search Using Sphinx
Enhance WordPress Search Using SphinxEnhance WordPress Search Using Sphinx
Enhance WordPress Search Using Sphinx
Roshan Bhattarai
 
DOD Presentation V2
DOD Presentation V2DOD Presentation V2
DOD Presentation V2
Cookie Lanfear
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from Twitter
Chris Aniszczyk
 
Amsterdam Meetup Presentation - Marts 2014
Amsterdam Meetup Presentation - Marts 2014Amsterdam Meetup Presentation - Marts 2014
Amsterdam Meetup Presentation - Marts 2014
Mads Møller
 
2014 #vBrownBag OpenStack Summit Atlanta Ju Lim -- OpenStack Personas
2014 #vBrownBag OpenStack Summit Atlanta Ju Lim -- OpenStack Personas2014 #vBrownBag OpenStack Summit Atlanta Ju Lim -- OpenStack Personas
2014 #vBrownBag OpenStack Summit Atlanta Ju Lim -- OpenStack Personas
Ju Lim
 
Apache Olingo - from Incubation to a real Olingo (Apache TLP)
Apache Olingo - from Incubation to a real Olingo (Apache TLP)Apache Olingo - from Incubation to a real Olingo (Apache TLP)
Apache Olingo - from Incubation to a real Olingo (Apache TLP)
mirbo
 
Robotics, Search and AI with Solr, MyRobotLab, and Deeplearning4j
Robotics, Search and AI with Solr, MyRobotLab, and Deeplearning4jRobotics, Search and AI with Solr, MyRobotLab, and Deeplearning4j
Robotics, Search and AI with Solr, MyRobotLab, and Deeplearning4j
Kevin Watters
 

Similar to Elasticsearch PHP UG BG (20)

Drupal and Elasticsearch
Drupal and ElasticsearchDrupal and Elasticsearch
Drupal and Elasticsearch
 
DrupalANDElasticsearch
DrupalANDElasticsearchDrupalANDElasticsearch
DrupalANDElasticsearch
 
Elastic search
Elastic searchElastic search
Elastic search
 
Building the Next Generation Teaching and Learning Environment
Building the Next Generation Teaching and Learning EnvironmentBuilding the Next Generation Teaching and Learning Environment
Building the Next Generation Teaching and Learning Environment
 
An Experimentation Toolkit for Robotics Control and Manipulation Tasks using ...
An Experimentation Toolkit for Robotics Control and Manipulation Tasks using ...An Experimentation Toolkit for Robotics Control and Manipulation Tasks using ...
An Experimentation Toolkit for Robotics Control and Manipulation Tasks using ...
 
Why contribute to open source projects
Why contribute to open source projectsWhy contribute to open source projects
Why contribute to open source projects
 
Getting a Neural Network Up and Running with OpenLab
Getting a Neural Network Up and Running with OpenLabGetting a Neural Network Up and Running with OpenLab
Getting a Neural Network Up and Running with OpenLab
 
Accelerate the ROI of PHP in your Enterprise
	Accelerate the ROI of PHP in your Enterprise	Accelerate the ROI of PHP in your Enterprise
Accelerate the ROI of PHP in your Enterprise
 
JupyterHub - A "Thing Explainer" Overview
JupyterHub - A "Thing Explainer" OverviewJupyterHub - A "Thing Explainer" Overview
JupyterHub - A "Thing Explainer" Overview
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010
 
FuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshopFuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshop
 
Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016
 
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecerTDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
 
Enhance WordPress Search Using Sphinx
Enhance WordPress Search Using SphinxEnhance WordPress Search Using Sphinx
Enhance WordPress Search Using Sphinx
 
DOD Presentation V2
DOD Presentation V2DOD Presentation V2
DOD Presentation V2
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from Twitter
 
Amsterdam Meetup Presentation - Marts 2014
Amsterdam Meetup Presentation - Marts 2014Amsterdam Meetup Presentation - Marts 2014
Amsterdam Meetup Presentation - Marts 2014
 
2014 #vBrownBag OpenStack Summit Atlanta Ju Lim -- OpenStack Personas
2014 #vBrownBag OpenStack Summit Atlanta Ju Lim -- OpenStack Personas2014 #vBrownBag OpenStack Summit Atlanta Ju Lim -- OpenStack Personas
2014 #vBrownBag OpenStack Summit Atlanta Ju Lim -- OpenStack Personas
 
Apache Olingo - from Incubation to a real Olingo (Apache TLP)
Apache Olingo - from Incubation to a real Olingo (Apache TLP)Apache Olingo - from Incubation to a real Olingo (Apache TLP)
Apache Olingo - from Incubation to a real Olingo (Apache TLP)
 
Robotics, Search and AI with Solr, MyRobotLab, and Deeplearning4j
Robotics, Search and AI with Solr, MyRobotLab, and Deeplearning4jRobotics, Search and AI with Solr, MyRobotLab, and Deeplearning4j
Robotics, Search and AI with Solr, MyRobotLab, and Deeplearning4j
 

Elasticsearch PHP UG BG