PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP

iMasters
iMastersjornalista, web editor, web writer, tradutora (en-pt/pt-en) at iMasters
Breno Oliveira
@brenoholiveira
breno26@gmail.com
B R E N O O L I V E I R A
Tech Leader at Moip
ElasticSearch
Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
+ 86k de contas vendendo
+ 100K de pedidos por dia
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
VENDAS AUMENTAM
VENDEDOR QUER SABER
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
Ordenação
FullText Search
PaginaçãoAgregação
Filtros
REALTIME
E O SEU SERVER DEPOIS DE VÁRIOS F5 …
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
NOSSA VONTADE É DE …
SEU CLIENTA VAI…
PHP + MySQL
PHP + postgresql
PHP + nosql
PHP + ????
CASO DE USO
+
502 200 304
+
Aplicação MOIP
Base de Dados Master
Single Term
SELECT * FROM pedidos p INNER JOIN cliente ON
p.cliente_id = c.id WHERE p.descricao LIKE
"%superman%"
multi Term
SELECT * FROM pedidos p INNER JOIN cliente ON
p.cliente_id = c.id WHERE p.descricao LIKE
"%superman%" OR p.descricao LIKE "%batman%"
ORDER
ARRGH!!!!
SELECT * FROM pedidos p INNER JOIN cliente ON
p.cliente_id = c.id WHERE p.descricao LIKE
"%superman%" OR p.descricao LIKE "%batman%" ORDER
BY ??
PROBLEMAS
• Difícil manter
• Muitos JOINS
• Lento
.Primeiro REFACTOR
MICRO SERVIÇO + BANCO denormalizado
APLICAÇÃO MOIP
Base de Dados Master
REPORTS API
Base de Dados denormalizada
MELHORIAS
• Micro serviço
• Concorrência no banco de dados
• No more JOINS
• Full-Text Search
• Melhorias de desempenho
PROBLEMAS
•Periodos longos
•Filtros
•Lentidão
.SEgundo REFACTOR
MICRO SERVIÇO + Banco colunar
APLICAÇÃO MOIP
Base de Dados Master
REPORTS API
MELHORIAS
• Consultas significantemente mais rápidas
PROBLEMAS
•BULK INSERTs
Too Slow
.terceiro REFACTOR
MICRO SERVIÇO + Elasticseach
APLICAÇÃO MOIP
Base de Dados Master
REPORTS API
Elasticsearch
MELHORIAS
• Bulk INSERT
• Desempenho
• Aggregations
• Scalable
• Redundancy
.Atualmente
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
Last Black Friday
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
.não é banco da dados
.nem nosql
I T ' ’ N O T K E Y- VA L U E S T O R A G E
.Escalável
.Alta resiliencia
.restful api
.orientado a documentos
.full-text search
.free schema
.Eventualmente consistente
.apache lucene
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
.Conceitos básicos
Elasticsearch
MySQL Elasticsearch
Database Index
Table Type
Column Field
Schema Mapping
Partition Shard
curl -XPUT http://localhost:9200/tips/tip/1 -d
'{"tip": "Using Elasticsearch in Production", "tags":
["protip","success"]} '
Endpoint
Index
Type
Document ID
Document
{
"_index": "tips",
"_type": "tip",
"_id": "1",
"_version": 1,
"created": true
}
Response
$ curl http://localhost:9200/tips/tip/1?pretty
{
"_index": "tips",
"_type": "tip",
"_id": "1",
"_version": 1,
"found": true,
"_source": {
"tip": "Using Elasticsearch in Production",
"tags": [
"protip",
"success"
]
}
}
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
VAGRANT
$ git clone git@github.com:brenooliveira/elastic-php-demo.git
$ cd elastic-php-demo
$ vagrant up —provision
$ vagrant ssh
vagrant@default:~/$
vagrant@default:$ curl http://localhost:9200
{
"status" : 200,
"name" : "Corruptor",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.5.2",
"build_hash" : "62ff9868b4c8a0c45860bebb259e21980778ab1c",
"build_timestamp" : "2015-04-27T09:21:06Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}
{
"require": {
"elasticsearch/elasticsearch": "~2.0@beta"
}
}
composer.json
$ curl -s http://getcomposer.org/installer | php
$ php composer.phar install --no-dev
<?php
require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()
->build();
$params = array();
$params['index'] = 'tips';
$params['type'] = 'tip';
$params['id'] = '1';
$result = $client->get($params)
?>
<pre>
<?= print_r($result); ?>
</pre>
exemplo1.php
Array
(
[_index] => tips
[_type] => tip
[_id] => 1
[_version] => 1
[found] => 1
[_source] => Array
(
[tip] => Using Elasticsearch in Production
[tags] => Array
(
[0] => protip
[1] => success
)
)
)
exemplo2.php
<?php
require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()
->build();
$params = [
'index' => 'tips',
'type' => 'tip',
'id' => '2',
'body' => [ 'tip' => 'Using Marvel to get metrics from Elasticsearch',
'tags' => ['protip', 'metrics'] ]
];
// Documento indexado em tips/tip/2
$response = $client->index($params);
?>
<pre>
<?= print_r($response) ?>
</pre>
exemplo3.php
<?php
require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()
->build();
for($i = 0; $i < 100; $i++) {
$params['body'][] = [
'index' => [
'_index' => 'jobs',
'_type' => 'job',
]
];
$params['body'][] = [
'title' => 'Job position '. $i,
'email' => 'email-'. $i . '@gmail.com'
];
}
$responses = $client->bulk($params);
?>
exemplo4.php
<?php
require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()->build();
$json = '{
"query" : {
"match" : {
"tags" : "protip"
}
}
}';
$params = [
'index'=> 'tips',
'type' => 'tip',
'body' => $json
];
$responses = $client->search($params);
?>
<pre>
<?= print_r($responses) ?>
</pre>
exemplo5.php
<?php
require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()->build();
$params = [
'index' => 'tips',
'type' => 'tip',
'id' => '3',
'body' => [ 'tip' => 'Wrong insert', 'tags' => ['missing',
'error', 'no_logs'] ]
];
$response_insert = $client->index($params);
$params = [
'index' => 'tips',
'type' => 'tip',
'id' => '3'
];
$responde_delete = $client->delete($params);
?>
exemplo6.php
<?php
require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()->build();
$params = [
'index' => 'tips',
'type' => 'tip',
'id' => '4',
'body' => [ 'tip' => 'Loren Ipsum', 'tags' => ['lorem'] ]
];
$response_insert = $client->index($params);
$params = [
'index' => 'tips',
'type' => 'tip',
'id' => '4',
'body' => [
'doc' => [
'text' => 'lipsum generator'
]
]
];
$response_update = $client->update($params);
$params = [
'index' => 'tips',
'type' => 'tip',
'id' => '4'
];
$response_search = $client->get($params);
?>
exemplo7.php
<?php
require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()->build();
$json = '{
"my-suggestion" : {
"text" : "Elastiscearch",
"term" : {
"field" : "tip"
}
}
}';
$params = [
'index' => 'tips',
'body' => $json
];
$response = $client->suggest($params);
?>
exemplo8.php
<?php
require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()->build();
$json = '{
"query" : {
"more_like_this" : {
"like_text" : "In production",
"min_term_freq" : 1,
"min_doc_freq" : 1
}
}
}';
$params = [
'index' => 'tips',
'type' => 'tip',
'body' => $json
];
$response = $client->search($params);
?>
.Vamos falar de arquitetura
.Como devo sincronizar
mysql & Elasticsearch
E-commerce app
Base de Dados Elasticsearch
Cadastrar novo produto
E-commerce app
Base de Dados
Elasticsearch
rabbitmq
Publish Message
php worker
Consume Message & Sync
Cadastrar novo produto
.Lessons learned
Utilize mais mappings
Em produção use alias
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
1 of 82

Recommended

Elastic search Walkthrough by
Elastic search WalkthroughElastic search Walkthrough
Elastic search WalkthroughSuhel Meman
2.3K views27 slides
elasticsearch - advanced features in practice by
elasticsearch - advanced features in practiceelasticsearch - advanced features in practice
elasticsearch - advanced features in practiceJano Suchal
13K views19 slides
Elasticsearch in 15 minutes by
Elasticsearch in 15 minutesElasticsearch in 15 minutes
Elasticsearch in 15 minutesDavid Pilato
17K views44 slides
Elasticsearch in 15 Minutes by
Elasticsearch in 15 MinutesElasticsearch in 15 Minutes
Elasticsearch in 15 MinutesKarel Minarik
6.6K views39 slides
Elasticsearch And Ruby [RuPy2012] by
Elasticsearch And Ruby [RuPy2012]Elasticsearch And Ruby [RuPy2012]
Elasticsearch And Ruby [RuPy2012]Karel Minarik
2.8K views23 slides
Elasticsearch (Rubyshift 2013) by
Elasticsearch (Rubyshift 2013)Elasticsearch (Rubyshift 2013)
Elasticsearch (Rubyshift 2013)Karel Minarik
3.6K views12 slides

More Related Content

What's hot

[제1회 루씬 한글분석기 기술세미나] solr로 나만의 검색엔진을 만들어보자 by
[제1회 루씬 한글분석기 기술세미나] solr로 나만의 검색엔진을 만들어보자[제1회 루씬 한글분석기 기술세미나] solr로 나만의 검색엔진을 만들어보자
[제1회 루씬 한글분석기 기술세미나] solr로 나만의 검색엔진을 만들어보자Donghyeok Kang
15.1K views52 slides
10gen Presents Schema Design and Data Modeling by
10gen Presents Schema Design and Data Modeling10gen Presents Schema Design and Data Modeling
10gen Presents Schema Design and Data ModelingDATAVERSITY
1.2K views54 slides
DevOps Fest 2019. Сергей Марченко. Terraform: a novel about modules, provider... by
DevOps Fest 2019. Сергей Марченко. Terraform: a novel about modules, provider...DevOps Fest 2019. Сергей Марченко. Terraform: a novel about modules, provider...
DevOps Fest 2019. Сергей Марченко. Terraform: a novel about modules, provider...DevOps_Fest
486 views40 slides
Introduction to Elasticsearch by
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to ElasticsearchSperasoft
1.2K views47 slides
Terms of endearment - the ElasticSearch Query DSL explained by
Terms of endearment - the ElasticSearch Query DSL explainedTerms of endearment - the ElasticSearch Query DSL explained
Terms of endearment - the ElasticSearch Query DSL explainedclintongormley
29.2K views96 slides
Solr & Lucene @ Etsy by Gregg Donovan by
Solr & Lucene @ Etsy by Gregg DonovanSolr & Lucene @ Etsy by Gregg Donovan
Solr & Lucene @ Etsy by Gregg DonovanGregg Donovan
3K views84 slides

What's hot(20)

[제1회 루씬 한글분석기 기술세미나] solr로 나만의 검색엔진을 만들어보자 by Donghyeok Kang
[제1회 루씬 한글분석기 기술세미나] solr로 나만의 검색엔진을 만들어보자[제1회 루씬 한글분석기 기술세미나] solr로 나만의 검색엔진을 만들어보자
[제1회 루씬 한글분석기 기술세미나] solr로 나만의 검색엔진을 만들어보자
Donghyeok Kang15.1K views
10gen Presents Schema Design and Data Modeling by DATAVERSITY
10gen Presents Schema Design and Data Modeling10gen Presents Schema Design and Data Modeling
10gen Presents Schema Design and Data Modeling
DATAVERSITY1.2K views
DevOps Fest 2019. Сергей Марченко. Terraform: a novel about modules, provider... by DevOps_Fest
DevOps Fest 2019. Сергей Марченко. Terraform: a novel about modules, provider...DevOps Fest 2019. Сергей Марченко. Terraform: a novel about modules, provider...
DevOps Fest 2019. Сергей Марченко. Terraform: a novel about modules, provider...
DevOps_Fest486 views
Introduction to Elasticsearch by Sperasoft
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Sperasoft1.2K views
Terms of endearment - the ElasticSearch Query DSL explained by clintongormley
Terms of endearment - the ElasticSearch Query DSL explainedTerms of endearment - the ElasticSearch Query DSL explained
Terms of endearment - the ElasticSearch Query DSL explained
clintongormley29.2K views
Solr & Lucene @ Etsy by Gregg Donovan by Gregg Donovan
Solr & Lucene @ Etsy by Gregg DonovanSolr & Lucene @ Etsy by Gregg Donovan
Solr & Lucene @ Etsy by Gregg Donovan
Gregg Donovan3K views
Elastify you application: from SQL to NoSQL in less than one hour! by David Pilato
Elastify you application: from SQL to NoSQL in less than one hour!Elastify you application: from SQL to NoSQL in less than one hour!
Elastify you application: from SQL to NoSQL in less than one hour!
David Pilato2.4K views
Eve - REST API for Humans™ by Nicola Iarocci
Eve - REST API for Humans™Eve - REST API for Humans™
Eve - REST API for Humans™
Nicola Iarocci8.2K views
Hidden Treasures in Project Wonder by WO Community
Hidden Treasures in Project WonderHidden Treasures in Project Wonder
Hidden Treasures in Project Wonder
WO Community14.6K views
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co... by Codemotion
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
Codemotion2.2K views
You Don't Know Query (WordCamp Netherlands 2012) by andrewnacin
You Don't Know Query (WordCamp Netherlands 2012)You Don't Know Query (WordCamp Netherlands 2012)
You Don't Know Query (WordCamp Netherlands 2012)
andrewnacin62.3K views
A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020 by Rob Ousbey
A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020
A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020
Rob Ousbey3.7K views
Building Your First Application with MongoDB by MongoDB
Building Your First Application with MongoDBBuilding Your First Application with MongoDB
Building Your First Application with MongoDB
MongoDB3.7K views
jQuery: Tips, tricks and hints for better development and Performance by Jonas De Smet
jQuery: Tips, tricks and hints for better development and PerformancejQuery: Tips, tricks and hints for better development and Performance
jQuery: Tips, tricks and hints for better development and Performance
Jonas De Smet3.5K views
MongoDB World 2016: Deciphering .explain() Output by MongoDB
MongoDB World 2016: Deciphering .explain() OutputMongoDB World 2016: Deciphering .explain() Output
MongoDB World 2016: Deciphering .explain() Output
MongoDB2.3K views
Web client security by Ziv Birer
Web client securityWeb client security
Web client security
Ziv Birer353 views
What You Missed in Computer Science by Taylor Lovett
What You Missed in Computer ScienceWhat You Missed in Computer Science
What You Missed in Computer Science
Taylor Lovett6.5K views

Viewers also liked

Social Miner: Webinar people marketing em 30 min by
Social Miner: Webinar people marketing em 30 minSocial Miner: Webinar people marketing em 30 min
Social Miner: Webinar people marketing em 30 minSocial Miner
817 views42 slides
PHP Experience 2016 - [Workshop] Deploy escalável na Amazon AWS by
PHP Experience 2016 - [Workshop] Deploy escalável na Amazon AWSPHP Experience 2016 - [Workshop] Deploy escalável na Amazon AWS
PHP Experience 2016 - [Workshop] Deploy escalável na Amazon AWSiMasters
951 views49 slides
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações by
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesPHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesiMasters
1.2K views126 slides
Waw - Gas by
Waw - GasWaw - Gas
Waw - Gasimpactaeventos
466 views41 slides
PHP Experience 2016 - [Workshop] Agile: Test Driven Development by
PHP Experience 2016 - [Workshop] Agile: Test Driven DevelopmentPHP Experience 2016 - [Workshop] Agile: Test Driven Development
PHP Experience 2016 - [Workshop] Agile: Test Driven DevelopmentiMasters
1K views50 slides
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP by
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPPHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPiMasters
1.1K views59 slides

Viewers also liked(20)

Social Miner: Webinar people marketing em 30 min by Social Miner
Social Miner: Webinar people marketing em 30 minSocial Miner: Webinar people marketing em 30 min
Social Miner: Webinar people marketing em 30 min
Social Miner817 views
PHP Experience 2016 - [Workshop] Deploy escalável na Amazon AWS by iMasters
PHP Experience 2016 - [Workshop] Deploy escalável na Amazon AWSPHP Experience 2016 - [Workshop] Deploy escalável na Amazon AWS
PHP Experience 2016 - [Workshop] Deploy escalável na Amazon AWS
iMasters951 views
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações by iMasters
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesPHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
iMasters1.2K views
PHP Experience 2016 - [Workshop] Agile: Test Driven Development by iMasters
PHP Experience 2016 - [Workshop] Agile: Test Driven DevelopmentPHP Experience 2016 - [Workshop] Agile: Test Driven Development
PHP Experience 2016 - [Workshop] Agile: Test Driven Development
iMasters1K views
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP by iMasters
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPPHP Experience 2016 - [Palestra] Rumo à Certificação PHP
PHP Experience 2016 - [Palestra] Rumo à Certificação PHP
iMasters1.1K views
What I learnt: Elastic search & Kibana : introduction, installtion & configur... by Rahul K Chauhan
What I learnt: Elastic search & Kibana : introduction, installtion & configur...What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
Rahul K Chauhan1.1K views
Android DevConference - Elastic Search como ferramenta de busca em aplicações... by iMasters
Android DevConference - Elastic Search como ferramenta de busca em aplicações...Android DevConference - Elastic Search como ferramenta de busca em aplicações...
Android DevConference - Elastic Search como ferramenta de busca em aplicações...
iMasters493 views
PHP Experience 2016 - [Palestra] Keynote: PHP-7 by iMasters
PHP Experience 2016 - [Palestra] Keynote: PHP-7PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7
iMasters1.1K views
PHP Experience 2016 - [Palestra] Melhorando a comunicação da API através de DSL by iMasters
PHP Experience 2016 - [Palestra] Melhorando a comunicação da API através de DSLPHP Experience 2016 - [Palestra] Melhorando a comunicação da API através de DSL
PHP Experience 2016 - [Palestra] Melhorando a comunicação da API através de DSL
iMasters1K views
PHP Experience 2016 - [Palestra] Autenticação em APIs by iMasters
PHP Experience 2016 - [Palestra] Autenticação em APIsPHP Experience 2016 - [Palestra] Autenticação em APIs
PHP Experience 2016 - [Palestra] Autenticação em APIs
iMasters1.3K views
PHP Experience 2016 - [Palestra] Json Web Token (JWT) by iMasters
PHP Experience 2016 - [Palestra] Json Web Token (JWT)PHP Experience 2016 - [Palestra] Json Web Token (JWT)
PHP Experience 2016 - [Palestra] Json Web Token (JWT)
iMasters2.1K views
Aula 5 encapsulamento, associação, polimorfismo, interfaces by Rafael Pinheiro
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Rafael Pinheiro2.5K views
Aula 2 conversao de variaveis j option-pane by Rafael Pinheiro
Aula 2   conversao de variaveis j option-paneAula 2   conversao de variaveis j option-pane
Aula 2 conversao de variaveis j option-pane
Rafael Pinheiro712 views
Sphinx - High performance full-text search for MySQL by Nguyen Van Vuong
Sphinx - High performance full-text search for MySQLSphinx - High performance full-text search for MySQL
Sphinx - High performance full-text search for MySQL
Nguyen Van Vuong3.3K views
Aula 4 herança, sobrescrita de métodos, construtor by Rafael Pinheiro
Aula 4   herança, sobrescrita de métodos, construtorAula 4   herança, sobrescrita de métodos, construtor
Aula 4 herança, sobrescrita de métodos, construtor
Rafael Pinheiro1K views

Similar to PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP

Open Source Search: An Analysis by
Open Source Search: An AnalysisOpen Source Search: An Analysis
Open Source Search: An AnalysisJustin Finkelstein
1.4K views39 slides
Real-time search in Drupal with Elasticsearch @Moldcamp by
Real-time search in Drupal with Elasticsearch @MoldcampReal-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @MoldcampAlexei Gorobets
1.2K views90 slides
Ams adapters by
Ams adaptersAms adapters
Ams adaptersBruno Alló Bacarini
264 views62 slides
PHPUnit Episode iv.iii: Return of the tests by
PHPUnit Episode iv.iii: Return of the testsPHPUnit Episode iv.iii: Return of the tests
PHPUnit Episode iv.iii: Return of the testsMichelangelo van Dam
872 views40 slides
OpenERP and Perl by
OpenERP and PerlOpenERP and Perl
OpenERP and PerlOpusVL
1.5K views66 slides
E-Commerce search with Elasticsearch by
E-Commerce search with ElasticsearchE-Commerce search with Elasticsearch
E-Commerce search with ElasticsearchYevhen Shyshkin
261 views20 slides

Similar to PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP(20)

Real-time search in Drupal with Elasticsearch @Moldcamp by Alexei Gorobets
Real-time search in Drupal with Elasticsearch @MoldcampReal-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @Moldcamp
Alexei Gorobets1.2K views
OpenERP and Perl by OpusVL
OpenERP and PerlOpenERP and Perl
OpenERP and Perl
OpusVL1.5K views
E-Commerce search with Elasticsearch by Yevhen Shyshkin
E-Commerce search with ElasticsearchE-Commerce search with Elasticsearch
E-Commerce search with Elasticsearch
Yevhen Shyshkin261 views
PHP Arrays - indexed and associative array. by wahidullah mudaser
PHP Arrays - indexed and associative array. PHP Arrays - indexed and associative array.
PHP Arrays - indexed and associative array.
wahidullah mudaser265 views
Solr's Search Relevancy (Understand Solr's query debug) by Wongnai
Solr's Search Relevancy (Understand Solr's query debug)Solr's Search Relevancy (Understand Solr's query debug)
Solr's Search Relevancy (Understand Solr's query debug)
Wongnai273 views
Ruby on Rails For Java Programmers by elliando dias
Ruby on Rails For Java ProgrammersRuby on Rails For Java Programmers
Ruby on Rails For Java Programmers
elliando dias442 views
Practical PHP by example Jan Leth-Kjaer by COMMON Europe
Practical PHP by example   Jan Leth-KjaerPractical PHP by example   Jan Leth-Kjaer
Practical PHP by example Jan Leth-Kjaer
COMMON Europe2.2K views
Scaling Complexity in WordPress Enterprise Apps by Mike Schinkel
Scaling Complexity in WordPress Enterprise AppsScaling Complexity in WordPress Enterprise Apps
Scaling Complexity in WordPress Enterprise Apps
Mike Schinkel1.2K views
Can WordPress really do that? A case study of vierderduer.no by Morten Rand-Hendriksen
Can WordPress really do that? A case study of vierderduer.noCan WordPress really do that? A case study of vierderduer.no
Can WordPress really do that? A case study of vierderduer.no
Google by soon
GoogleGoogle
Google
soon978 views
Spca2014 hillier 3rd party_javascript_libraries by NCCOMMS
Spca2014 hillier 3rd party_javascript_librariesSpca2014 hillier 3rd party_javascript_libraries
Spca2014 hillier 3rd party_javascript_libraries
NCCOMMS451 views

More from iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro by
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
1.4K views40 slides
Postgres: wanted, beloved or dreaded? - Fabio Telles by
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
603 views51 slides
Por que minha query esta lenta? - Suellen Moraes by
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
370 views12 slides
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig... by
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
298 views9 slides
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves by
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
324 views31 slides
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -... by
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
1.7K views52 slides

More from iMasters(20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro by iMasters
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
iMasters1.4K views
Postgres: wanted, beloved or dreaded? - Fabio Telles by iMasters
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
iMasters603 views
Por que minha query esta lenta? - Suellen Moraes by iMasters
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
iMasters370 views
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig... by iMasters
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
iMasters298 views
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves by iMasters
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
iMasters324 views
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -... by iMasters
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
iMasters1.7K views
Arquitetando seus dados na prática para a LGPD - Alessandra Martins by iMasters
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
iMasters3.3K views
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil... by iMasters
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
iMasters287 views
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud by iMasters
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
iMasters950 views
Use MDD e faça as máquinas trabalharem para você - Andreza Leite by iMasters
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
iMasters682 views
Entendendo os porquês do seu servidor - Talita Bernardes by iMasters
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
iMasters544 views
Backend performático além do "coloca mais máquina lá" - Diana Arnos by iMasters
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
iMasters477 views
Dicas para uma maior performance em APIs REST - Renato Groffe by iMasters
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
iMasters595 views
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro by iMasters
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
iMasters475 views
Quem se importa com acessibilidade Web? - Mauricio Maujor by iMasters
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
iMasters480 views
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva by iMasters
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
iMasters604 views
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti by iMasters
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
iMasters559 views
Elasticidade e engenharia de banco de dados para alta performance - Rubens G... by iMasters
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
iMasters569 views
Construindo aplicações mais confiantes - Carolina Karklis by iMasters
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
iMasters477 views
Monitoramento de Aplicações - Felipe Regalgo by iMasters
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
iMasters709 views

Recently uploaded

UNIDAD 3 6º C.MEDIO.pptx by
UNIDAD 3 6º C.MEDIO.pptxUNIDAD 3 6º C.MEDIO.pptx
UNIDAD 3 6º C.MEDIO.pptxMarcosRodriguezUcedo
146 views32 slides
Berry country.pdf by
Berry country.pdfBerry country.pdf
Berry country.pdfMariaKenney3
75 views12 slides
Six Sigma Concept by Sahil Srivastava.pptx by
Six Sigma Concept by Sahil Srivastava.pptxSix Sigma Concept by Sahil Srivastava.pptx
Six Sigma Concept by Sahil Srivastava.pptxSahil Srivastava
44 views11 slides
ICS3211_lecture 09_2023.pdf by
ICS3211_lecture 09_2023.pdfICS3211_lecture 09_2023.pdf
ICS3211_lecture 09_2023.pdfVanessa Camilleri
141 views10 slides
EILO EXCURSION PROGRAMME 2023 by
EILO EXCURSION PROGRAMME 2023EILO EXCURSION PROGRAMME 2023
EILO EXCURSION PROGRAMME 2023info33492
202 views40 slides
Career Building in AI - Technologies, Trends and Opportunities by
Career Building in AI - Technologies, Trends and OpportunitiesCareer Building in AI - Technologies, Trends and Opportunities
Career Building in AI - Technologies, Trends and OpportunitiesWebStackAcademy
45 views44 slides

Recently uploaded(20)

Six Sigma Concept by Sahil Srivastava.pptx by Sahil Srivastava
Six Sigma Concept by Sahil Srivastava.pptxSix Sigma Concept by Sahil Srivastava.pptx
Six Sigma Concept by Sahil Srivastava.pptx
Sahil Srivastava44 views
EILO EXCURSION PROGRAMME 2023 by info33492
EILO EXCURSION PROGRAMME 2023EILO EXCURSION PROGRAMME 2023
EILO EXCURSION PROGRAMME 2023
info33492202 views
Career Building in AI - Technologies, Trends and Opportunities by WebStackAcademy
Career Building in AI - Technologies, Trends and OpportunitiesCareer Building in AI - Technologies, Trends and Opportunities
Career Building in AI - Technologies, Trends and Opportunities
WebStackAcademy45 views
The Future of Micro-credentials: Is Small Really Beautiful? by Mark Brown
The Future of Micro-credentials:  Is Small Really Beautiful?The Future of Micro-credentials:  Is Small Really Beautiful?
The Future of Micro-credentials: Is Small Really Beautiful?
Mark Brown75 views
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (FRIE... by Nguyen Thanh Tu Collection
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (FRIE...BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (FRIE...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (FRIE...
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37 by MysoreMuleSoftMeetup
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
INT-244 Topic 6b Confucianism by S Meyer
INT-244 Topic 6b ConfucianismINT-244 Topic 6b Confucianism
INT-244 Topic 6b Confucianism
S Meyer45 views
Class 9 lesson plans by TARIQ KHAN
Class 9 lesson plansClass 9 lesson plans
Class 9 lesson plans
TARIQ KHAN82 views
Nelson_RecordStore.pdf by BrynNelson5
Nelson_RecordStore.pdfNelson_RecordStore.pdf
Nelson_RecordStore.pdf
BrynNelson546 views
Guess Papers ADC 1, Karachi University by Khalid Aziz
Guess Papers ADC 1, Karachi UniversityGuess Papers ADC 1, Karachi University
Guess Papers ADC 1, Karachi University
Khalid Aziz99 views
Monthly Information Session for MV Asterix (November) by Esquimalt MFRC
Monthly Information Session for MV Asterix (November)Monthly Information Session for MV Asterix (November)
Monthly Information Session for MV Asterix (November)
Esquimalt MFRC107 views
JQUERY.pdf by ArthyR3
JQUERY.pdfJQUERY.pdf
JQUERY.pdf
ArthyR3105 views

PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP