SlideShare a Scribd company logo
1 of 25
Mecanismos de
Busca com PHP +
MongoDB
Cronograma
1. Por que eu?
2. Conceitos fundamentais
3. MongoDB
4. PHP
5. Referências
6. Dúvidas
1 Por que eu?
1. 11 anos programando
2. 7 anos empreendendo
3. 3 mecanismos de busca no ar
4. luiztools.com.br
1 Por que eu?
1 Por que eu?
2 Conceitos Fundamentais
1. Fonte de Dados
2. Classificação
3. Indexação
4. Pesquisa
5. Atualização
2 Conceitos Fundamentais
2.1 Fonte de Dados
•carga de dados
•crawling
•SQL, etc
2 Conceitos Fundamentais
2.2 Classificação
•redes neurais
•machine learning
•rankings
•NoSQL?
2 Conceitos Fundamentais
2.3 Indexação
•normalização
•tagging
•inverted index
•stopwords, sinônimos...
•NoSQL!
2 Conceitos Fundamentais
2.4 Pesquisa
•normalização
•tagging
•inverted index
•stopwords, sinônimos…
•resultados
2 Conceitos Fundamentais
2.5 Atualização
•index rebuild?
•live update?
•Redis...
•MongoDB!!!
3 MongoDB
•mongodb.org
•free
•tenha RAM de sobra
•document oriented
•array fields
•indexed array fields
3 MongoDB
•subir servidor
C:mongodbserver3.xbin> mongod -dbpath C:mongodbserver3.xdata
/Applications/mongo-x/bin> ./mongod -dbpath /Applications/mongo-x/data
3 MongoDB
•carga de dados normalizada
use databaseName
custArray = [{"nome":"Luiz Júnior", "profissao":"Professor", "tags":["LUIZ","JUNIOR","PROFESSOR"]},
{"nome":"Luiz Fernando", "profissao":"Autor", "tags":["LUIZ","FERNANDO","AUTOR"]},
{"nome":"Luiz Tools", "profissao":"Blogueiro", "tags":["LUIZ","TOOLS","BLOGUEIRO"]},
{"nome":"Luiz Duarte", "profissao":"Blogueiro", "tags":["LUIZ","DUARTE","BLOGUEIRO"]}]
db.customers.insert(custArray);
3 MongoDB
•indexed array field
db.customers.createIndex({ "tags": 1 });
4 PHP
•baixar driver mongodb
$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule sync && git submodule update –init
$ phpize
$ ./configure
$ make
$ sudo make install
4 PHP
•php.ini
extension=mongodb.so
4 PHP
•conexão
$mongo = new MongoDBDriverManager( ‘mongodb://usuario:senha@servidor.mlab.com:23400/nomeDoBanco’);
4 PHP
• formulário
<html>
<head></head>
<body>
<form method=”GET” action=”pesquisa.php”>
<p><label for=”txtPesquisa”>Pesquisa: <input type=”text” id=”txtPesquisa” name=”txtPesquisa” /></p>
<input type=”submit” value=”Pesquisar” />
</form>
</body>
</html>
4 PHP
• pesquisa
$search = explode(' ', $_GET['txtPesquisa']);
$mongo = new MongoDBDriverManager('mongodb://localhost/luiztools');
$filter = ['tags' => ['$all' => $search ] ];
$query = new MongoDBDriverQuery($filter, ['sort' => [ 'nome' => 1], 'limit' => 5]);
$rows = $mongo->executeQuery("luiztools.customers", $query);
foreach ($rows as $row) {
echo "$row->nome : $row->profissaon";
}
5 Referências
•post no site phprs.com.br
•posts no luiztools.com.br
•documentação mongodb.org
•documentação php.net
6 Dúvidas?
Mecanismo de busca PHP + MongoDB

More Related Content

What's hot

Construindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com PythonConstruindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com Python
pugpe
 

What's hot (18)

ASP.Net Core FAQ
ASP.Net Core FAQASP.Net Core FAQ
ASP.Net Core FAQ
 
Mongo + php
Mongo + phpMongo + php
Mongo + php
 
Construindo um Google Pyrate
Construindo um Google PyrateConstruindo um Google Pyrate
Construindo um Google Pyrate
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
Conhecendo mundo Node.js
Conhecendo mundo Node.jsConhecendo mundo Node.js
Conhecendo mundo Node.js
 
Tunando o Wordpress para sites de alta visitação
Tunando o Wordpress para sites de alta visitaçãoTunando o Wordpress para sites de alta visitação
Tunando o Wordpress para sites de alta visitação
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JS
 
Drush - O poder do Drupal na linha de comando
Drush - O poder do Drupal na linha de comandoDrush - O poder do Drupal na linha de comando
Drush - O poder do Drupal na linha de comando
 
PHPMongoDB
PHPMongoDBPHPMongoDB
PHPMongoDB
 
Javascript nos dias de hoje
Javascript nos dias de hojeJavascript nos dias de hoje
Javascript nos dias de hoje
 
Construindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com PythonConstruindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com Python
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
 
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
 
Agilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j queryAgilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j query
 
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeZabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo BranasNode.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
 
Boas práticas de API Design
Boas práticas de API DesignBoas práticas de API Design
Boas práticas de API Design
 
How to use Elasticsearch Analyzers by EmergiNet
How to use  Elasticsearch Analyzers by EmergiNetHow to use  Elasticsearch Analyzers by EmergiNet
How to use Elasticsearch Analyzers by EmergiNet
 

Similar to Mecanismo de busca PHP + MongoDB

ESTRUTURA_DE_DADOS.pdf
ESTRUTURA_DE_DADOS.pdfESTRUTURA_DE_DADOS.pdf
ESTRUTURA_DE_DADOS.pdf
smftec
 
Programação em php importante
Programação em php   importanteProgramação em php   importante
Programação em php importante
edmilson_gomes
 
Agencia de SEO - Criando e gerenciando a sua agência
Agencia de SEO - Criando e gerenciando a sua agência Agencia de SEO - Criando e gerenciando a sua agência
Agencia de SEO - Criando e gerenciando a sua agência
Fabio Ricotta
 

Similar to Mecanismo de busca PHP + MongoDB (14)

ESTRUTURA_DE_DADOS.pdf
ESTRUTURA_DE_DADOS.pdfESTRUTURA_DE_DADOS.pdf
ESTRUTURA_DE_DADOS.pdf
 
Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014
 
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmicaPepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
 
Deep Learning para Sistemas de Recomendação
Deep Learning para Sistemas de RecomendaçãoDeep Learning para Sistemas de Recomendação
Deep Learning para Sistemas de Recomendação
 
Programação em php importante
Programação em php   importanteProgramação em php   importante
Programação em php importante
 
FireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDBFireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDB
 
Do marketplace ao WordPress - WordCamp BH 2015
Do marketplace ao WordPress -  WordCamp BH 2015Do marketplace ao WordPress -  WordCamp BH 2015
Do marketplace ao WordPress - WordCamp BH 2015
 
Ruby conf br
Ruby conf brRuby conf br
Ruby conf br
 
Curso Básico de SEO
Curso Básico de SEOCurso Básico de SEO
Curso Básico de SEO
 
Slide da Monografia
Slide da MonografiaSlide da Monografia
Slide da Monografia
 
Agencia de SEO - Criando e gerenciando a sua agência
Agencia de SEO - Criando e gerenciando a sua agência Agencia de SEO - Criando e gerenciando a sua agência
Agencia de SEO - Criando e gerenciando a sua agência
 
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
 
TCC - Classificação automática de opiniões
TCC - Classificação automática de opiniõesTCC - Classificação automática de opiniões
TCC - Classificação automática de opiniões
 
Entity Framework 4, Novas funcionalidades
Entity Framework 4, Novas funcionalidadesEntity Framework 4, Novas funcionalidades
Entity Framework 4, Novas funcionalidades
 

More from Luiz Duarte

More from Luiz Duarte (20)

Mecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDBMecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDB
 
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
 
Team Building: Passo a Passo
Team Building: Passo a PassoTeam Building: Passo a Passo
Team Building: Passo a Passo
 
Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07
 
Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04
 
Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02
 
Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03
 
Curso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - IntroduçãoCurso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - Introdução
 
Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01
 
Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05
 
Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06
 
Carreira em Agilidade
Carreira em AgilidadeCarreira em Agilidade
Carreira em Agilidade
 
Gamification em Modelos de Maturidade
Gamification em Modelos de MaturidadeGamification em Modelos de Maturidade
Gamification em Modelos de Maturidade
 
Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20
 
Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19
 
Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18
 
Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17
 
Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16
 
Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15
 
Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14
 

Mecanismo de busca PHP + MongoDB