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

6,510 views

Published on

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
6,510
On SlideShare
0
From Embeds
0
Number of Embeds
695
Actions
Shares
0
Downloads
89
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

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

  1. 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. 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. 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. 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. 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. 6. Sobre o que vamos falar hoje... sábado, 19 de setembro de 2009
  7. 7. sábado, 19 de setembro de 2009
  8. 8. sábado, 19 de setembro de 2009
  9. 9. sábado, 19 de setembro de 2009
  10. 10. #ESFM estável seguro e de fácil manutenção sábado, 19 de setembro de 2009
  11. 11. #ESFM estável seguro e de fácil manutenção sábado, 19 de setembro de 2009
  12. 12. • Pesquisas • Lucene • Solr • Hibernate Search sábado, 19 de setembro de 2009
  13. 13. o que é um software de pesquisas? o que um software de pesquisa faz? sábado, 19 de setembro de 2009
  14. 14. FAZ sábado, 19 de setembro de 2009
  15. 15. monta um índice FAZ sábado, 19 de setembro de 2009
  16. 16. monta um índice FAZ responde a pesquisas baseando-se neste índice sábado, 19 de setembro de 2009
  17. 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. 18. OFERECE sábado, 19 de setembro de 2009
  19. 19. OFERECE relevância sábado, 19 de setembro de 2009
  20. 20. OFERECE relevância escalabilidade sábado, 19 de setembro de 2009
  21. 21. OFERECE relevância escalabilidade integração com diversas fontes de dados sábado, 19 de setembro de 2009
  22. 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. 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. 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. 25. Apache Lucene sábado, 19 de setembro de 2009
  26. 26. Search Software sábado, 19 de setembro de 2009
  27. 27. Open Source Search Software sábado, 19 de setembro de 2009
  28. 28. sábado, 19 de setembro de 2009
  29. 29. sábado, 19 de setembro de 2009
  30. 30. sábado, 19 de setembro de 2009
  31. 31. sábado, 19 de setembro de 2009
  32. 32. Lucene Java Solr sábado, 19 de setembro de 2009
  33. 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. 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. 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. 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. 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. 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. 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. 40. Lucene Features++ normalização de textos (Analyzer) normalização linguística lowercase stopwords tokenizer sábado, 19 de setembro de 2009
  41. 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. 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. 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. 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. 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. 46. aprendendo o básico sábado, 19 de setembro de 2009
  47. 47. aprendendo o básico 1. INDEXAR sábado, 19 de setembro de 2009
  48. 48. aprendendo o básico 1. INDEXAR sábado, 19 de setembro de 2009
  49. 49. aprendendo o básico 1. INDEXAR 2. PESQUISAR sábado, 19 de setembro de 2009
  50. 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. 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. 52. hands on! sábado, 19 de setembro de 2009
  53. 53. Solr sábado, 19 de setembro de 2009
  54. 54. Search Server sábado, 19 de setembro de 2009
  55. 55. baseado no lucene Search Server sábado, 19 de setembro de 2009
  56. 56. sábado, 19 de setembro de 2009
  57. 57. sábado, 19 de setembro de 2009
  58. 58. sábado, 19 de setembro de 2009
  59. 59. Solr sábado, 19 de setembro de 2009
  60. 60. caching replicação XML JSON alta performance administração amigável full-text search Solr sábado, 19 de setembro de 2009
  61. 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. 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. 63. hands on! sábado, 19 de setembro de 2009
  64. 64. Hibernate Search sábado, 19 de setembro de 2009
  65. 65. o melhor de dois mundos? sábado, 19 de setembro de 2009
  66. 66. talvez! o melhor de dois mundos? sábado, 19 de setembro de 2009
  67. 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. 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. 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. 70. hands on! sábado, 19 de setembro de 2009
  71. 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. 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. 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
  74. 74. http://www.esjug.org sábado, 19 de setembro de 2009
  75. 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. 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. 77. dúvidas? sábado, 19 de setembro de 2009
  78. 78. Obrigado! http://www.cejug.org sábado, 19 de setembro de 2009
  79. 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

×