mecanismo de busca php + mongodb
TRANSCRIPT
Mecanismos de Busca com PHP
+ MongoDB
Cronograma1. Por que eu?2. Conceitos fundamentais3. MongoDB4. PHP5. Referências6. Dúvidas
1 Por que eu?1. 11 anos programando2. 7 anos empreendendo3. 3 mecanismos de busca no ar4. luiztools.com.br
1 Por que eu?
1 Por que eu?
2 Conceitos Fundamentais1. Fonte de Dados2. Classificação3. Indexação4. Pesquisa5. Atualização
2 Conceitos Fundamentais2.1 Fonte de Dados
•carga de dados•crawling•SQL, etc
2 Conceitos Fundamentais2.2 Classificação
•redes neurais•machine learning•rankings•NoSQL?
2 Conceitos Fundamentais2.3 Indexação
•normalização•tagging•inverted index•stopwords, sinônimos...•NoSQL!
2 Conceitos Fundamentais2.4 Pesquisa
•normalização•tagging•inverted index•stopwords, sinônimos…•resultados
2 Conceitos Fundamentais2.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:\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 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 MongoDB\Driver\Manager( ‘mongodb://usuario:[email protected]: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 MongoDB\Driver\Manager('mongodb://localhost/luiztools');$filter = ['tags' => ['$all' => $search ] ];$query = new MongoDB\Driver\Query($filter, ['sort' => [ 'nome' => 1], 'limit' => 5]);$rows = $mongo->executeQuery("luiztools.customers", $query);
foreach ($rows as $row) { echo "$row->nome : $row->profissao\n";}
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?