Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Vejo muita gente falando sobre Zend_Search_Lucene, alguém sabe como usar esse recurso?
Partindo de uma idéia básica de busca em uma tabela de livros, tendo o Titulo e o Autor como indices.
>
Qual a duvida exatamente? Os artigos e a documentação oficial já não seriam suficientes para iniciar com o zend_search?
pra falar a verdade não, e vejo uma certa distância entre material oficial e uso prático, principalmente porque não é contextualizado, se documentação fosse tão esclarecida assim que só de ler já gozaria de todos os recursos disponíveis ninguém precisaria dar treinamento.
Tipo no caso do lucene por onde que eu começo, crio um metodo que adiciona o indice? como funciona esse indice? como começa a coisa toda desde a modelagem? edição, exclusão, busca, busca em várias tabelas...
Taí, o problema não é com o zend_search, é conceitual.
Treinamentos existem por uma série de razões, algumas delas são até fáceis de assimilar:
_ material didático especifico para a ocasião, q também não exausta o assunto;
_ profissional especialista a disposição, para sanar dúvidas práticas e teóricas;
_ se for um treinamento presencial, aumentar o network e conhecer alguns casos de uso;
Bom... Tanto faz.
A primeira pergunta. Você precisa de uma busca textual na sua aplicação? Alguns entendimentos.
O foco passa a ser no documento (página web ou arquivo mesmo (xml, doc, html)), você pode sim indexar um banco de dados, mas não vejo razão para indexar, por exemplo, uma ou duas tabelas, a não ser em casos bem específicos. Geralmente utiliza-se uma view, com foco no negócio, e a partir desta view cria-se o índice.
Mas que negócio seria esse? Pois bem, vamos imaginar um cenário, uma loja virtual, inúmeros itens e possibilidades de pesquisa (nome do produto, marca, modelo, características, preço, palavras chave, entre outras possibilidade) qual seria o documento neste caso? Um registro da view? Não. O documento seria a página/link que remete ao produto no resultado da busca. Outro negocio? Uma biblioteca de imagens, um acervo de documentos jurídicos, uma lista telefonica, um classificado de automóveis, ...
Então tá. Pq alguém iria precisar de uma busca textual na aplicação? É possível fazer tudo isso com o banco de dados.
_ busca muito veloz, muito mesmo;
_ operadores de busca não tradicionais: proximidade, similaridade, fuzzy, operadores lógicos (similar ao google: +, -, AND, NOT, OR), wildcards, busca por frase e intervalos.
_ relevância, ranking e boost dos resultados;
_ técnicas de busca textual, tais como: tokenization e stopwords;
_ busca centralizada, de várias origens, tudo no mesmo índice, exemplo: a lista de produtos (do sistema de e-commerce, no sql server), notícias online (do sistema de publicação web, no mysql online) e classificados (da intranet, no mysql local);
_ melhorar a experiência de busca do portal ou de sistemas;
E tudo é bom assim? Não existem "problemas"?
Este índice textual será completamente desvinculado do sistema de banco de dados, ou outra fonte de dados qualquer, desta forma é necessário definir uma estratégia de indexação. Se o documento será indexado no momento que for publicado, se vai haver um processo batch para fazer esta indexação. Como vai sincronizar os documentos apagados e atualizados? Em caso de crash do índice, quanto tempo demora para reindexar todo o conteúdo? Quanto de espaço necessário para fazer a indexação de um determinado conteúdo?
Acho que para começar esta bom.
--------------- Ponto de Mesclagem ---------------
Ai Luciano,
Encontrei um artigo que pode ajudar a clarear mais um pouco.
http://www.jeffersonluis.com/blog/tag/lucene/
--------------- Ponto de Mesclagem ---------------
Aqui outro artigo (este em inglês), mais prático que o anterior, este é sobre indexação de arquivos PDF.
http://www.hashbangcode.com/blog/zend-lucene-and-pdf-documents-part-1-pdf-meta-data-436.html
Qual a duvida exatamente? Os artigos e a documentação oficial já não seriam suficientes para iniciar com o zend_search?