Posts Marcados Zend Framework

Criando Índice – Zend Search Lucene


Resolvi fazer este post por motivo simples, quando precisei, não encontrei quase nada de material que me ajuda-se muito (eu sei, eu sei, claro que tem o manual, e ele é foda), então resolvi compartilhar um pouco aqui.

Criando Índice:
O Zend Lucene é bem simples de se trabalhar com ele, e o poder de busca oferecido é enorme, o lucene tem seu índice, onde é adicionado todos os dados em um documento, que seram buscados e apresentados para o usuário, o índice criado fica no root do seu servidor:

  1. $index = Zend_Search_Lucene::create(‘/data/indice’);

Adiconando Dados no Índice:
Após criado o índice, basta apenas adicionar os dados.
Toda vez que adicionado um novo documendo dentro do índice, é necessario ser aberto o mesmo:

  1. $index = Zend_Search_Lucene::open(‘/data/indice’);
  2. // Cria um documento
  3. $doc = new Zend_Search_Lucene_Document();
  4. // Adiciona para o documento
  5. $doc->addField(Zend_Search_Lucene_Field::Keyword(‘id, $nId));
  6. $doc->addField(Zend_Search_Lucene_Field::Text(‘nome’, $sNome));
  7. $doc->addField(Zend_Search_Lucene_Field::Text(‘fone’, $sFone));
  8. $doc->addField(Zend_Search_Lucene_Field::Text(‘endereco’, $sEndereco));
  9. // Adicona o documento para o indice
  10. $index->addDocument($doc);

Buscando:
Depois de Criado o índice, podemos efetuar uma busca, e apresentar os dados ao usuário.

  1. $query = $this->getRequest()->getParam(busca’);
  2. $index = Zend_Search_Lucene::open(‘/data/indice’);
  3. // buscando no indice
  4. $hits =$index->find($query);
  5. foreach($hits as $hit){
  6. …..echo$hit->nome;
  7. …..echo $hit->fone;
  8. …..echo $hit->endereco;
  9. }

Esta foi uma busca bem simples, em algum outro post futuro, coloco como fazer uma busca com mais performace.

Excluir Documento:
Excluir o documento do índice:

  1. $id = $this->getRequest()->getParam(id’);
  2. $index= Zend_Search_Lucene::open(‘/data/indice);
  3. // buscando no indice
  4. $hits = $index->find(id:$id);
  5. foreach($hits as$hit){
  6. ....// exclui do indice
  7. ......$index->delete($hit->id);
  8. }

Este post do lucene foi bem o básico de se criar, adicionar, buscar e excluir documentos,
pretendo postar mais sobre o lucene.

A documentação completa pode ser consultada no manual do Zend Framework.

Espero que ajude.

,

Deixe um comentário

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.