Posts Tagged 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:
-
$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:
-
$index = Zend_Search_Lucene::open(‘/data/indice’);
- // Cria um documento
-
$doc = new Zend_Search_Lucene_Document();
-
// Adiciona para o documento
- $doc->addField(Zend_Search_Lucene_Field::Keyword(‘id‘, $nId));
-
$doc->addField(Zend_Search_Lucene_Field::Text(‘nome’, $sNome));
-
$doc->addField(Zend_Search_Lucene_Field::Text(‘fone’, $sFone));
-
$doc->addField(Zend_Search_Lucene_Field::Text(‘endereco’, $sEndereco));
-
// Adicona o documento para o indice
-
$index->addDocument($doc);
Buscando:
Depois de Criado o índice, podemos efetuar uma busca, e apresentar os dados ao usuário.
- $query = $this->getRequest()->getParam(‘busca’);
-
$index = Zend_Search_Lucene::open(‘/data/indice’);
- // buscando no indice
-
$hits =$index->find($query);
- foreach($hits as $hit){
- …..echo$hit->nome;
- …..echo $hit->fone;
- …..echo $hit->endereco;
- }
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:
- $id = $this->getRequest()->getParam(‘id’);
-
$index= Zend_Search_Lucene::open(‘/data/indice‘);
- // buscando no indice
-
$hits = $index->find(“id:$id“);
- foreach($hits as$hit){
- ....…// exclui do indice
- ......$index->delete($hit->id);
- }
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.


