Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Buscas Poderosas Com Solr

6,678 views

Published on

Apresentação no devinsampa

  • Be the first to comment

Buscas Poderosas Com Solr

  1. 1. Ricardo Almeida - Gonow Buscas Poderosas com Solr
  2. 2. Quem sou?
  3. 3. Solr • Engine de Busca • Open Source (Apache) • Baseado no Lucene • Java Servlet container (Jetty) • XML/HTTP e JSON APIs • Faceted Search, caching, replicação. • Web adm Interface
  4. 4. Lucene • Full Search Text • Search and Index (Busca Index ao invés de textos) • Document (Unidade de Pesquisa e Index) • Fields • Queries
  5. 5. acts_as_taggable_on • script/plugin install git://github.com/mbleigh/acts-as-taggable-on.git • script/generate acts_as_taggable_on_migration • rake db:migrate
  6. 6. Solr - Atributos Dinâmicos DynamicAttribute.new :name => “hora_extra”, :value => “A definir”
  7. 7. Solr - Atributos Dinâmicos • script/generate dynamic_attributes_migration • rake db:migrate
  8. 8. Solr - Geo-Distância
  9. 9. Solr - Geo-Localização • script/generate local_migration • rake db:migrate
  10. 10. Integrando Solr e plugin acts_as_solr com Rails (5 min)
  11. 11. Requerimentos: Java Runtime Environment (JRE) 5.0 Passos: 1. Criar aplicação Rails 2. Instalar plugin acts_as_solr_reloaded script/plugin install git://github.com/ricardoalmeida/acts_as_solr_reloaded.git 3. Criar um modelo Palestrante 5. Executar a migração 6. Editar o modelo 7. rake solr:start http://0.0.0.0:8982/solr/admin 8. Usar o script/console
  12. 12. Acts_as_solr • query = “Palestrante devinsampa” • palestrante.find_by_solr(query, options) • palestrante.search(query, options) • evento.palestrantes.search(query)
  13. 13. Por que Solr? • JVM
  14. 14. Por que Solr? • JVM • Performance /Cache / Replicação
  15. 15. Por que Solr? • JVM • Performance /Cache / Replicação • Usa Lucene
  16. 16. Por que Solr? • JVM • Performance /Cache / Replicação • Usa Lucene • Boa integração com Rails
  17. 17. Performance de Indexação • multithread / multiprocessos • solrconfig.xml
  18. 18. Performance de Busca • Index Otimizado • Cache tuning (solrconfig.xml) • Replicação de Busca
  19. 19. Por que Solr? Acts_as_solr Sphinx Acts_as_ferret
  20. 20. Sai Sphinx entra Solr
  21. 21. Acts_as_solr X Sphinx • Acts_as_solr trabalha com Sqlite3 e Sphinx exigia Mysql • Acts_as_solr indexa documento no after_create • Atributos Dinâmicos • Faceting e Geo-localizacao
  22. 22. acts_as_taggable_on • script/plugin install git://github.com/mbleigh/acts-as-taggable-on.git • script/generate acts_as_taggable_on_migration • rake db:migrate
  23. 23. Solr - Faceting • Número de vezes que um termo aparece em um documento
  24. 24. Lucene - Relevance :tag => 0 :nome => 2 Palestrante.search “Ricardo” palestrante1.tag_list = “Ricardo” palestrante2.nome = “Ricardo”
  25. 25. Lucene - Query Parser Sintaxe • title:ipod* AND price:[0 TO 100]
  26. 26. Testes • rake solr:start RAILS_ENV=test • Porta 8981
  27. 27. Por que reloaded? • Plugin de Thiago Jackiw (http://www.railsfreaks.com/) • acts_as_solr_reloaded de Diego Carrion (www.mouseoverstudio.com)
  28. 28. Por que reloaded? • Solr 1.4 • Geo-Localização • Relevance • Highlighting
  29. 29. Novas Features (Meu fork) • Migrate para DynamicAttribute e Local • DynamicAttribute e Local internos
  30. 30. Lucene • WhitespaceAnalyser • StopAnalizers • SynonymAnalyser • I18n (Internacionalização)
  31. 31. http://www.workingwithrails.com/person/17033-ricardo-almeida
  32. 32. Agradecimentos
  33. 33. Referências • http://www.mouseoverstudio.com/blog/2009/08/27/sai-sphinx-entra-solr- actsassolrreloaded/ • http://github.com/mbleigh/acts-as-taggable-on/tree/master • http://github.com/dcrec1/acts_as_solr_reloaded/tree • http://lucene.apache.org/solr/ • http://wiki.apache.org/solr/ • http://lucene.apache.org/solr/tutorial.html • http://github.com/jeveaux/aprendendo-solr/tree/master/solrServer/ • http://solrjs.solrstuff.org/test/reuters/ • http://www.lucenetutorial.com/
  34. 34. Duvidas? http://manifestonaweb.wordpress.com @almeidaricardo http://visaoagil.wordpress.com www.infoq.com/br
  35. 35. Obrigado!

×