Você está na página 1de 25

Mecanismos de

Busca com PHP +


MongoDB
Cronograma
1. Por que eu?
2. Conceitos fundamentais
3. MongoDB
4. PHP
5. Referncias
6. Dvidas
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. Classificao
3. Indexao
4. Pesquisa
5. Atualizao
2 Conceitos Fundamentais
2.1 Fonte de Dados
carga de dados
crawling
SQL, etc
2 Conceitos Fundamentais
2.2 Classificao
redes neurais
machine learning
rankings
NoSQL?
2 Conceitos Fundamentais
2.3 Indexao
normalizao
tagging
inverted index
stopwords, sinnimos...
NoSQL!
2 Conceitos Fundamentais
2.4 Pesquisa
normalizao
tagging
inverted index
stopwords, sinnimos
resultados
2 Conceitos Fundamentais
2.5 Atualizao
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:\mongodb\server\3.x\bin>
mongod -dbpath
C:\mongodb\server\3.x\data

/Applications/mongo-x/bin>
./mongod -dbpath
/Applications/mongo-x/data
3 MongoDB
carga de dados normalizada

use databaseName

custArray = [{"nome":"Luiz Jnior",


"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"]
}]
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
conexo

$mongo = new
MongoDB\Driver\Manager( mongo
db://usuario:senha@servidor.mlab.
com:23400/nomeDoBanco);
4 PHP
formulrio

<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
MongoDB\Driver\Manager('mongod
b://localhost/luiztools');
$filter = ['tags' => ['$all' =>
$search ] ];
$query = new
MongoDB\Driver\Query($filter,
['sort' => [ 'nome' => 1], 'limit' =>
5]);
$rows = $mongo-
>executeQuery("luiztools.customer
s", $query);

foreach ($rows as $row) {


5 Referncias
post no site phprs.com.br
posts no luiztools.com.br
documentao mongodb.org
documentao php.net
6 Dvidas?

Você também pode gostar