SlideShare uma empresa Scribd logo
1 de 79
Baixar para ler offline
Turbinando sua aplicação com Lucene
               Solr & Hibernate Search

                                 Paulo César M. Jeveaux - @jeveaux
                                   paulo.jeveaux@giran.com.br




sábado, 19 de setembro de 2009
Jeveaux
                      • CEO da Giran
                      • Desenvolvedor Java há 8++ anos
                      • Fundador do ESJUG e Agile-ES
                      • Administrador do PortalJava.com
                      • Palestrante e evangelista Java
                      • Entusiasta Ruby, Rails, Python e Agile
                      • Curioso e estudando Erlang
sábado, 19 de setembro de 2009
Giran Soluções e Ensino
                    •      Consultoria e Treinamento especialidados
                          •      Java
                          •      Ruby on Rails
                          •      Desenvolvimento ágil
                    •      Gerenciamento de projetos com SCRUM
                    •      Profissionais altamente qualificados
                    •      Participação ativa na comunidade
                    •      http://www.giran.com.br
sábado, 19 de setembro de 2009
Giran Soluções e Ensino
                    •      Consultoria e Treinamento especialidados
                          •      Java
                          •      Ruby on Rails
                          •      Desenvolvimento ágil
                    •      Gerenciamento de projetos com SCRUM
                    •      Profissionais altamente qualificados
                    •      Participação ativa na comunidade
                    •      http://www.giran.com.br
sábado, 19 de setembro de 2009
Giran Soluções e Ensino
                    •      Consultoria e Treinamento especialidados
                          •      Java
                          •      Ruby on Rails
                          •      Desenvolvimento ágil
                    •      Gerenciamento de projetos com SCRUM
                    •      Profissionais altamente qualificados
                    •      Participação ativa na comunidade
                    •      http://www.giran.com.br
sábado, 19 de setembro de 2009
Sobre o que vamos
                                falar hoje...


sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
#ESFM
                                   estável
                                   seguro
                                  e de fácil
                                 manutenção
sábado, 19 de setembro de 2009
#ESFM
                                   estável
                                   seguro
                                  e de fácil
                                 manutenção
sábado, 19 de setembro de 2009
•      Pesquisas

                    • Lucene

                    • Solr

                    • Hibernate Search

sábado, 19 de setembro de 2009
o que é um software de
                     pesquisas?



                                 o que um software
                                  de pesquisa faz?


sábado, 19 de setembro de 2009
FAZ




sábado, 19 de setembro de 2009
monta um índice
              FAZ




sábado, 19 de setembro de 2009
monta um índice
              FAZ                   responde a pesquisas
                                 baseando-se neste índice




sábado, 19 de setembro de 2009
monta um índice
              FAZ                           responde a pesquisas
                                         baseando-se neste índice




                                      Search Software?
                                        Eu faço LIKE
                                 direto no banco de dados

sábado, 19 de setembro de 2009
OFERECE




sábado, 19 de setembro de 2009
OFERECE
     relevância




sábado, 19 de setembro de 2009
OFERECE
     relevância

     escalabilidade




sábado, 19 de setembro de 2009
OFERECE
     relevância

     escalabilidade

     integração com diversas fontes
     de dados

sábado, 19 de setembro de 2009
baseado em palavras
           não em substrings

                         carro OU automóvel
                         auto != automóvel
                         má OU macho



sábado, 19 de setembro de 2009
baseado em palavras
           não em substrings

                         carro OU automóvel
                         auto != automóvel
                         má OU macho     talvez aqui no Ceará não ;-)




sábado, 19 de setembro de 2009
baseado em palavras
           não em substrings

                         carro OU automóvel
                         auto != automóvel
                         má OU macho            talvez aqui no Ceará não ;-)


                                           e agora!?
                                 como fazer no banco de dados?
sábado, 19 de setembro de 2009
Apache
                                 Lucene
sábado, 19 de setembro de 2009
Search
                                 Software
sábado, 19 de setembro de 2009
Open Source
                                  Search
                                 Software
sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
Lucene Java


                                 Solr



sábado, 19 de setembro de 2009
Mahout                                     PyLucene

            Lucene Java                 desde 2000
                                                          Lucy

                                 Tika
                                        Solr         Lucene.Net

            Open Relevance                             Nutch
               Project
                                         Droids
sábado, 19 de setembro de 2009
Lucene Java

                 indexação e pesquisa

                 java 1.4++

                 nenhuma dependência, nenhuma!

                 qualquer coisa é um documento



sábado, 19 de setembro de 2009
Lucene Java

                 indexação e pesquisa

                 java 1.4++

                 nenhuma dependência, nenhuma!

                 qualquer coisa é um documento
                                                 { }
                                                 fields
                                                 fields
                                                 fields



sábado, 19 de setembro de 2009
Lucene Features
               indexação e pesquisa bastante rápidas

               query syntax simples e poderosa

               ordenação por relevância ou por campos (fields)

              comunidade grande e ativa

               Apache License 2.0


sábado, 19 de setembro de 2009
Lucene Query Syntax
               cejug
               “cejug”
               *jug
               café AND tapioca
               café OR tapioca
               café NOT tapioca
               jug:cejug

sábado, 19 de setembro de 2009
Lucene Query Syntax
               cejug
               “cejug”
               *jug
               café AND tapioca   +café +tapioca
               café OR tapioca
               café NOT tapioca
               jug:cejug

sábado, 19 de setembro de 2009
Lucene Query Syntax
               cejug
               “cejug”
               *jug
               café AND tapioca   +café +tapioca
               café OR tapioca
               café NOT tapioca   +café -tapioca
               jug:cejug

sábado, 19 de setembro de 2009
Lucene Features++
               normalização de textos (Analyzer)

               normalização linguística

               lowercase

               stopwords

               tokenizer


sábado, 19 de setembro de 2009
Lucene Features++
               normalização de textos (Analyzer)

               normalização linguística            guri => menino

               lowercase

               stopwords

               tokenizer


sábado, 19 de setembro de 2009
Lucene Features++
               normalização de textos (Analyzer)

               normalização linguística               guri => menino

               lowercase

               stopwords                       a, e, ou, para, de, etc ...

               tokenizer


sábado, 19 de setembro de 2009
Lucene Features++
               normalização de textos (Analyzer)

               normalização linguística                     guri => menino

               lowercase

               stopwords                             a, e, ou, para, de, etc ...

               tokenizer                  ce-jug: java => ce, jug, java, cejug


sábado, 19 de setembro de 2009
Lucene Features++
               normalização de textos (Analyzer)

               normalização linguística                           guri => menino



                                                              má => macho
               lowercase

               stopwords                             a, e, ou, para, de, etc ...

               tokenizer                  ce-jug: java => ce, jug, java, cejug


sábado, 19 de setembro de 2009
Lucene Features++
               Fuzzy search

                            distância de levenshtein

                            “ceará java ~ 0.75”

               Proximidade

                            “ceará java” ~ 5


sábado, 19 de setembro de 2009
aprendendo
      o básico




sábado, 19 de setembro de 2009
aprendendo
      o básico
                  1. INDEXAR


sábado, 19 de setembro de 2009
aprendendo
      o básico
                  1. INDEXAR


sábado, 19 de setembro de 2009
aprendendo
      o básico
                  1. INDEXAR

                                 2. PESQUISAR
sábado, 19 de setembro de 2009
index
   1. crie um documento
    a. adicione os fields

   2. adicione o documento
      ao index

   3. o indexador irá analisar
      o documento e atualizar
      o index



sábado, 19 de setembro de 2009
index               search
   1. crie um documento          1. crie uma query
    a. adicione os fields
                                 2. abra um index
   2. adicione o documento
      ao index                   3. pesquise no index

   3. o indexador irá analisar   4. itere no resultado e
      o documento e atualizar    exiba-o
      o index



sábado, 19 de setembro de 2009
hands on!

sábado, 19 de setembro de 2009
Solr

sábado, 19 de setembro de 2009
Search Server
sábado, 19 de setembro de 2009
baseado no lucene



       Search Server
sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
sábado, 19 de setembro de 2009
Solr
sábado, 19 de setembro de 2009
caching                             replicação
                                 XML
                                       JSON
                alta
            performance                administração
                                         amigável
                         full-text
                          search              Solr
sábado, 19 de setembro de 2009
Solr

                 servidor web de indexação e pesquisa

                 java 1.5++

                 possui o lucene em seu core




sábado, 19 de setembro de 2009
Solr Features
             interface web de administração

             otimizações para alta performance e muito tráfego

             suporta caching e replication

             XML/HTTP e JSON API

             faceted search

               hit highlighting
sábado, 19 de setembro de 2009
hands on!

sábado, 19 de setembro de 2009
Hibernate
Search
sábado, 19 de setembro de 2009
o melhor de
             dois mundos?
sábado, 19 de setembro de 2009
talvez!

             o melhor de
             dois mundos?
sábado, 19 de setembro de 2009
Hibernate Search Features
               hibernate core + JPA

               baseado em anotações

               indexação baseada em eventos (transparente)

              integração com seu modelo




sábado, 19 de setembro de 2009
Hibernate Search Features
               hibernate core + JPA   +   lucene
               baseado em anotações

               indexação baseada em eventos (transparente)

              integração com seu modelo




sábado, 19 de setembro de 2009
Hibernate Search Features
              elimina a conversão para documentos

              mantém seu índice atualizado

              depende do hibernate core e annotations

              também possui integração com Solr

              amigável com soluções JBoss*

sábado, 19 de setembro de 2009
hands on!

sábado, 19 de setembro de 2009
Conclusões
                lucene
                        indexação e pesquisa

                        rápido e poderoso

                        simples e leve

                        sem dependências

                        não possui webcrawlers ou parsers
sábado, 19 de setembro de 2009
Conclusões
                      solr
                        servidor de indexação e pesquisa

                        Restful API (HTTP e XML)

                        cliente não precisa ser Java

                        administração fácil via web

                        construído sobre o lucene
sábado, 19 de setembro de 2009
Conclusões
                hibernate search
                        integração com seu modelo de dados

                        sem manipulação direta de documentos

                        sincronização transparente do index

                        dependência do hibernate


sábado, 19 de setembro de 2009
http://www.esjug.org

sábado, 19 de setembro de 2009
Referências
        •      http://search.hibernate.org
        •      http://lucene.apache.org
        •      http://lucene.apache.org/solr
        •      http://info.abril.com.br/noticias/ti/fbi-e-cia-vao-abracar-o-codigo-
               aberto-22062009-35.shl
        •      http://www.getopt.org/luke
        •      http://vitorpamplona.com/wiki/Introdução%20ao%20Apache
               %20Lucene
        •      http://www.lucenetutorial.com
        •      http://wikipedia.org
sábado, 19 de setembro de 2009
Exemplos & Códigos
          • Lucene
           • http://github.com/jeveaux/aprendendo-lucene
          • Solr
           • http://github.com/jeveaux/aprendendo-solr
          • Hibernate Search
           • http://github.com/jeveaux/aprendendo-
                       hibernatesearch

sábado, 19 de setembro de 2009
dúvidas?
sábado, 19 de setembro de 2009
Obrigado!




                http://www.cejug.org
sábado, 19 de setembro de 2009
Turbinando sua aplicação com Lucene
               Solr & Hibernate Search

                                 Paulo César M. Jeveaux - @jeveaux
                                   paulo.jeveaux@giran.com.br




sábado, 19 de setembro de 2009

Mais conteúdo relacionado

Destaque

Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Rommel Carvalho
 
Ferramentas para Mineração de Dados
Ferramentas para Mineração de DadosFerramentas para Mineração de Dados
Ferramentas para Mineração de DadosManoel Amaro
 
Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...Rommel Carvalho
 
Weka – Ferramenta Livre para Mineração de Dados
Weka – Ferramenta Livre para Mineração de DadosWeka – Ferramenta Livre para Mineração de Dados
Weka – Ferramenta Livre para Mineração de DadosRubem Ventura Alves
 
Weka em aplicações java
Weka em aplicações javaWeka em aplicações java
Weka em aplicações javaMarcio Palheta
 
14.03.23 livro sobre pentaho
14.03.23   livro sobre pentaho14.03.23   livro sobre pentaho
14.03.23 livro sobre pentahoTalita Lima
 
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...Caio Moreno
 

Destaque (9)

Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...
 
Ferramentas para Mineração de Dados
Ferramentas para Mineração de DadosFerramentas para Mineração de Dados
Ferramentas para Mineração de Dados
 
Oficina Pentaho
Oficina PentahoOficina Pentaho
Oficina Pentaho
 
Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...
 
Relatório Utilização da Ferramenta Weka
Relatório Utilização da Ferramenta WekaRelatório Utilização da Ferramenta Weka
Relatório Utilização da Ferramenta Weka
 
Weka – Ferramenta Livre para Mineração de Dados
Weka – Ferramenta Livre para Mineração de DadosWeka – Ferramenta Livre para Mineração de Dados
Weka – Ferramenta Livre para Mineração de Dados
 
Weka em aplicações java
Weka em aplicações javaWeka em aplicações java
Weka em aplicações java
 
14.03.23 livro sobre pentaho
14.03.23   livro sobre pentaho14.03.23   livro sobre pentaho
14.03.23 livro sobre pentaho
 
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
 

Mais de Paulo César M Jeveaux

Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaWine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaPaulo César M Jeveaux
 
Empreendedorismo além do mundo da fantasia
Empreendedorismo além do mundo da fantasiaEmpreendedorismo além do mundo da fantasia
Empreendedorismo além do mundo da fantasiaPaulo César M Jeveaux
 
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...Paulo César M Jeveaux
 
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-diaCase Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-diaPaulo César M Jeveaux
 
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatosSCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatosPaulo César M Jeveaux
 
Desenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMDesenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMPaulo César M Jeveaux
 
Negociação de contratos de projetos de software
Negociação de contratos de projetos de softwareNegociação de contratos de projetos de software
Negociação de contratos de projetos de softwarePaulo César M Jeveaux
 
Desenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMDesenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMPaulo César M Jeveaux
 
Comunidades Virtuais Java - Conexão Java - 2004
Comunidades Virtuais Java - Conexão Java - 2004Comunidades Virtuais Java - Conexão Java - 2004
Comunidades Virtuais Java - Conexão Java - 2004Paulo César M Jeveaux
 

Mais de Paulo César M Jeveaux (20)

Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaWine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
 
Empreendedorismo além do mundo da fantasia
Empreendedorismo além do mundo da fantasiaEmpreendedorismo além do mundo da fantasia
Empreendedorismo além do mundo da fantasia
 
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
 
E-commerce Além dos Sites
E-commerce Além dos SitesE-commerce Além dos Sites
E-commerce Além dos Sites
 
Controle de versão com GIT
Controle de versão com GITControle de versão com GIT
Controle de versão com GIT
 
Resenha Rework por Jeveaux
Resenha Rework por JeveauxResenha Rework por Jeveaux
Resenha Rework por Jeveaux
 
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-diaCase Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
 
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatosSCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
 
Desafios no e-commerce brasileiro
Desafios no e-commerce brasileiroDesafios no e-commerce brasileiro
Desafios no e-commerce brasileiro
 
Desenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMDesenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUM
 
Negociação de contratos de projetos de software
Negociação de contratos de projetos de softwareNegociação de contratos de projetos de software
Negociação de contratos de projetos de software
 
Desenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUMDesenvolvimento Ágil de Software com SCRUM
Desenvolvimento Ágil de Software com SCRUM
 
Extreme Programming - XP
Extreme Programming - XPExtreme Programming - XP
Extreme Programming - XP
 
Desenvolvimento Ágil com SCRUM
Desenvolvimento Ágil com SCRUMDesenvolvimento Ágil com SCRUM
Desenvolvimento Ágil com SCRUM
 
Certificação Digital
Certificação DigitalCertificação Digital
Certificação Digital
 
AOP - JustJava - 2005
AOP - JustJava - 2005AOP - JustJava - 2005
AOP - JustJava - 2005
 
AOP - ESJUG - 2005
AOP - ESJUG - 2005AOP - ESJUG - 2005
AOP - ESJUG - 2005
 
Comunidades Virtuais Java - Conexão Java - 2004
Comunidades Virtuais Java - Conexão Java - 2004Comunidades Virtuais Java - Conexão Java - 2004
Comunidades Virtuais Java - Conexão Java - 2004
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
JGoodies - Conexão Java 2005
JGoodies - Conexão Java 2005JGoodies - Conexão Java 2005
JGoodies - Conexão Java 2005
 

Turbinando sua aplicação com Lucene, Solr e Hibernate Search

  • 1. Turbinando sua aplicação com Lucene Solr & Hibernate Search Paulo César M. Jeveaux - @jeveaux paulo.jeveaux@giran.com.br sábado, 19 de setembro de 2009
  • 2. Jeveaux • CEO da Giran • Desenvolvedor Java há 8++ anos • Fundador do ESJUG e Agile-ES • Administrador do PortalJava.com • Palestrante e evangelista Java • Entusiasta Ruby, Rails, Python e Agile • Curioso e estudando Erlang sábado, 19 de setembro de 2009
  • 3. Giran Soluções e Ensino • Consultoria e Treinamento especialidados • Java • Ruby on Rails • Desenvolvimento ágil • Gerenciamento de projetos com SCRUM • Profissionais altamente qualificados • Participação ativa na comunidade • http://www.giran.com.br sábado, 19 de setembro de 2009
  • 4. Giran Soluções e Ensino • Consultoria e Treinamento especialidados • Java • Ruby on Rails • Desenvolvimento ágil • Gerenciamento de projetos com SCRUM • Profissionais altamente qualificados • Participação ativa na comunidade • http://www.giran.com.br sábado, 19 de setembro de 2009
  • 5. Giran Soluções e Ensino • Consultoria e Treinamento especialidados • Java • Ruby on Rails • Desenvolvimento ágil • Gerenciamento de projetos com SCRUM • Profissionais altamente qualificados • Participação ativa na comunidade • http://www.giran.com.br sábado, 19 de setembro de 2009
  • 6. Sobre o que vamos falar hoje... sábado, 19 de setembro de 2009
  • 7. sábado, 19 de setembro de 2009
  • 8. sábado, 19 de setembro de 2009
  • 9. sábado, 19 de setembro de 2009
  • 10. #ESFM estável seguro e de fácil manutenção sábado, 19 de setembro de 2009
  • 11. #ESFM estável seguro e de fácil manutenção sábado, 19 de setembro de 2009
  • 12. Pesquisas • Lucene • Solr • Hibernate Search sábado, 19 de setembro de 2009
  • 13. o que é um software de pesquisas? o que um software de pesquisa faz? sábado, 19 de setembro de 2009
  • 14. FAZ sábado, 19 de setembro de 2009
  • 15. monta um índice FAZ sábado, 19 de setembro de 2009
  • 16. monta um índice FAZ responde a pesquisas baseando-se neste índice sábado, 19 de setembro de 2009
  • 17. monta um índice FAZ responde a pesquisas baseando-se neste índice Search Software? Eu faço LIKE direto no banco de dados sábado, 19 de setembro de 2009
  • 18. OFERECE sábado, 19 de setembro de 2009
  • 19. OFERECE relevância sábado, 19 de setembro de 2009
  • 20. OFERECE relevância escalabilidade sábado, 19 de setembro de 2009
  • 21. OFERECE relevância escalabilidade integração com diversas fontes de dados sábado, 19 de setembro de 2009
  • 22. baseado em palavras não em substrings carro OU automóvel auto != automóvel má OU macho sábado, 19 de setembro de 2009
  • 23. baseado em palavras não em substrings carro OU automóvel auto != automóvel má OU macho talvez aqui no Ceará não ;-) sábado, 19 de setembro de 2009
  • 24. baseado em palavras não em substrings carro OU automóvel auto != automóvel má OU macho talvez aqui no Ceará não ;-) e agora!? como fazer no banco de dados? sábado, 19 de setembro de 2009
  • 25. Apache Lucene sábado, 19 de setembro de 2009
  • 26. Search Software sábado, 19 de setembro de 2009
  • 27. Open Source Search Software sábado, 19 de setembro de 2009
  • 28. sábado, 19 de setembro de 2009
  • 29. sábado, 19 de setembro de 2009
  • 30. sábado, 19 de setembro de 2009
  • 31. sábado, 19 de setembro de 2009
  • 32. Lucene Java Solr sábado, 19 de setembro de 2009
  • 33. Mahout PyLucene Lucene Java desde 2000 Lucy Tika Solr Lucene.Net Open Relevance Nutch Project Droids sábado, 19 de setembro de 2009
  • 34. Lucene Java indexação e pesquisa java 1.4++ nenhuma dependência, nenhuma! qualquer coisa é um documento sábado, 19 de setembro de 2009
  • 35. Lucene Java indexação e pesquisa java 1.4++ nenhuma dependência, nenhuma! qualquer coisa é um documento { } fields fields fields sábado, 19 de setembro de 2009
  • 36. Lucene Features indexação e pesquisa bastante rápidas query syntax simples e poderosa ordenação por relevância ou por campos (fields) comunidade grande e ativa Apache License 2.0 sábado, 19 de setembro de 2009
  • 37. Lucene Query Syntax cejug “cejug” *jug café AND tapioca café OR tapioca café NOT tapioca jug:cejug sábado, 19 de setembro de 2009
  • 38. Lucene Query Syntax cejug “cejug” *jug café AND tapioca +café +tapioca café OR tapioca café NOT tapioca jug:cejug sábado, 19 de setembro de 2009
  • 39. Lucene Query Syntax cejug “cejug” *jug café AND tapioca +café +tapioca café OR tapioca café NOT tapioca +café -tapioca jug:cejug sábado, 19 de setembro de 2009
  • 40. Lucene Features++ normalização de textos (Analyzer) normalização linguística lowercase stopwords tokenizer sábado, 19 de setembro de 2009
  • 41. Lucene Features++ normalização de textos (Analyzer) normalização linguística guri => menino lowercase stopwords tokenizer sábado, 19 de setembro de 2009
  • 42. Lucene Features++ normalização de textos (Analyzer) normalização linguística guri => menino lowercase stopwords a, e, ou, para, de, etc ... tokenizer sábado, 19 de setembro de 2009
  • 43. Lucene Features++ normalização de textos (Analyzer) normalização linguística guri => menino lowercase stopwords a, e, ou, para, de, etc ... tokenizer ce-jug: java => ce, jug, java, cejug sábado, 19 de setembro de 2009
  • 44. Lucene Features++ normalização de textos (Analyzer) normalização linguística guri => menino má => macho lowercase stopwords a, e, ou, para, de, etc ... tokenizer ce-jug: java => ce, jug, java, cejug sábado, 19 de setembro de 2009
  • 45. Lucene Features++ Fuzzy search distância de levenshtein “ceará java ~ 0.75” Proximidade “ceará java” ~ 5 sábado, 19 de setembro de 2009
  • 46. aprendendo o básico sábado, 19 de setembro de 2009
  • 47. aprendendo o básico 1. INDEXAR sábado, 19 de setembro de 2009
  • 48. aprendendo o básico 1. INDEXAR sábado, 19 de setembro de 2009
  • 49. aprendendo o básico 1. INDEXAR 2. PESQUISAR sábado, 19 de setembro de 2009
  • 50. index 1. crie um documento a. adicione os fields 2. adicione o documento ao index 3. o indexador irá analisar o documento e atualizar o index sábado, 19 de setembro de 2009
  • 51. index search 1. crie um documento 1. crie uma query a. adicione os fields 2. abra um index 2. adicione o documento ao index 3. pesquise no index 3. o indexador irá analisar 4. itere no resultado e o documento e atualizar exiba-o o index sábado, 19 de setembro de 2009
  • 52. hands on! sábado, 19 de setembro de 2009
  • 53. Solr sábado, 19 de setembro de 2009
  • 54. Search Server sábado, 19 de setembro de 2009
  • 55. baseado no lucene Search Server sábado, 19 de setembro de 2009
  • 56. sábado, 19 de setembro de 2009
  • 57. sábado, 19 de setembro de 2009
  • 58. sábado, 19 de setembro de 2009
  • 59. Solr sábado, 19 de setembro de 2009
  • 60. caching replicação XML JSON alta performance administração amigável full-text search Solr sábado, 19 de setembro de 2009
  • 61. Solr servidor web de indexação e pesquisa java 1.5++ possui o lucene em seu core sábado, 19 de setembro de 2009
  • 62. Solr Features interface web de administração otimizações para alta performance e muito tráfego suporta caching e replication XML/HTTP e JSON API faceted search hit highlighting sábado, 19 de setembro de 2009
  • 63. hands on! sábado, 19 de setembro de 2009
  • 65. o melhor de dois mundos? sábado, 19 de setembro de 2009
  • 66. talvez! o melhor de dois mundos? sábado, 19 de setembro de 2009
  • 67. Hibernate Search Features hibernate core + JPA baseado em anotações indexação baseada em eventos (transparente) integração com seu modelo sábado, 19 de setembro de 2009
  • 68. Hibernate Search Features hibernate core + JPA + lucene baseado em anotações indexação baseada em eventos (transparente) integração com seu modelo sábado, 19 de setembro de 2009
  • 69. Hibernate Search Features elimina a conversão para documentos mantém seu índice atualizado depende do hibernate core e annotations também possui integração com Solr amigável com soluções JBoss* sábado, 19 de setembro de 2009
  • 70. hands on! sábado, 19 de setembro de 2009
  • 71. Conclusões lucene indexação e pesquisa rápido e poderoso simples e leve sem dependências não possui webcrawlers ou parsers sábado, 19 de setembro de 2009
  • 72. Conclusões solr servidor de indexação e pesquisa Restful API (HTTP e XML) cliente não precisa ser Java administração fácil via web construído sobre o lucene sábado, 19 de setembro de 2009
  • 73. Conclusões hibernate search integração com seu modelo de dados sem manipulação direta de documentos sincronização transparente do index dependência do hibernate sábado, 19 de setembro de 2009
  • 75. Referências • http://search.hibernate.org • http://lucene.apache.org • http://lucene.apache.org/solr • http://info.abril.com.br/noticias/ti/fbi-e-cia-vao-abracar-o-codigo- aberto-22062009-35.shl • http://www.getopt.org/luke • http://vitorpamplona.com/wiki/Introdução%20ao%20Apache %20Lucene • http://www.lucenetutorial.com • http://wikipedia.org sábado, 19 de setembro de 2009
  • 76. Exemplos & Códigos • Lucene • http://github.com/jeveaux/aprendendo-lucene • Solr • http://github.com/jeveaux/aprendendo-solr • Hibernate Search • http://github.com/jeveaux/aprendendo- hibernatesearch sábado, 19 de setembro de 2009
  • 77. dúvidas? sábado, 19 de setembro de 2009
  • 78. Obrigado! http://www.cejug.org sábado, 19 de setembro de 2009
  • 79. Turbinando sua aplicação com Lucene Solr & Hibernate Search Paulo César M. Jeveaux - @jeveaux paulo.jeveaux@giran.com.br sábado, 19 de setembro de 2009