SlideShare uma empresa Scribd logo
Ricardo Almeida - Gonow

Buscas Poderosas com
         Solr
Quem sou?
Buscas Poderosas Com Solr
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
Lucene
• Full Search Text
• Search and Index (Busca Index ao invés
  de textos)
• Document (Unidade de Pesquisa e
  Index)
• Fields
• Queries
Buscas Poderosas Com Solr
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
Solr - Atributos Dinâmicos



   DynamicAttribute.new :name => “hora_extra”,
                        :value => “A definir”
Solr - Atributos Dinâmicos

  • script/generate dynamic_attributes_migration
  • rake db:migrate
Solr - Geo-Distância
Solr - Geo-Localização

• script/generate local_migration
• rake db:migrate
Buscas Poderosas Com Solr
Integrando Solr e plugin
 acts_as_solr com Rails
        (5 min)
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
Acts_as_solr

• query = “Palestrante devinsampa”
• palestrante.find_by_solr(query, options)
• palestrante.search(query, options)
• evento.palestrantes.search(query)
Por que Solr?

• JVM
Por que Solr?

• JVM
• Performance /Cache / Replicação
Por que Solr?

• JVM
• Performance /Cache / Replicação
• Usa Lucene
Por que Solr?

• JVM
• Performance /Cache / Replicação
• Usa Lucene
• Boa integração com Rails
Performance de
         Indexação

• multithread / multiprocessos
• solrconfig.xml
Performance de Busca

• Index Otimizado
• Cache tuning (solrconfig.xml)
• Replicação de Busca
Por que Solr?
Acts_as_solr   Sphinx   Acts_as_ferret
Sai Sphinx entra Solr
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
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
Buscas Poderosas Com Solr
Buscas Poderosas Com Solr
Buscas Poderosas Com Solr
Buscas Poderosas Com Solr
Buscas Poderosas Com Solr
Solr - Faceting
   • Número de vezes que um
     termo aparece em um
     documento
Lucene - Relevance

             :tag => 0
           :nome => 2

 Palestrante.search “Ricardo”

 palestrante1.tag_list = “Ricardo”
 palestrante2.nome = “Ricardo”
Lucene - Query Parser
       Sintaxe


• title:ipod* AND price:[0 TO 100]
Testes


• rake solr:start RAILS_ENV=test
• Porta 8981
Por que reloaded?

• Plugin de Thiago Jackiw
  (http://www.railsfreaks.com/)
• acts_as_solr_reloaded de Diego Carrion
  (www.mouseoverstudio.com)
Por que reloaded?

• Solr 1.4
• Geo-Localização
• Relevance
• Highlighting
Novas Features
       (Meu fork)

• Migrate para DynamicAttribute e Local
• DynamicAttribute e Local internos
Lucene

• WhitespaceAnalyser
• StopAnalizers
• SynonymAnalyser
• I18n (Internacionalização)
http://www.workingwithrails.com/person/17033-ricardo-almeida
Agradecimentos
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/
Duvidas?
http://manifestonaweb.wordpress.com
           @almeidaricardo
    http://visaoagil.wordpress.com
           www.infoq.com/br
Obrigado!

Mais conteúdo relacionado

KEY
Palestra Fatec
PDF
Introdução ao Rails (Linguagil)
PDF
Apresentação - Solr, o cara!
ODP
Desmistificando Tecnologias
ODP
Introdução a Big Data e Apache Solr
PDF
Link analysis - Análise de Links
PDF
Reforma da Lei de Direitos Autorais
PPT
Pesquisando bilhões de documentos em milésimos de segundo
Palestra Fatec
Introdução ao Rails (Linguagil)
Apresentação - Solr, o cara!
Desmistificando Tecnologias
Introdução a Big Data e Apache Solr
Link analysis - Análise de Links
Reforma da Lei de Direitos Autorais
Pesquisando bilhões de documentos em milésimos de segundo

Semelhante a Buscas Poderosas Com Solr (20)

KEY
Workshop Performance Rails
PDF
Diapositivos práticos - Integração de Sistemas.pdf
PDF
CDI Extensions e DeltaSpike
KEY
Projeto Octopus - Database Sharding para ActiveRecord
KEY
PHP RESTful Web Services - PHPConf'09
PPTX
KEY
escalando aplicações django
PDF
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
PDF
Java 9, 10 e ... 11
PDF
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
PDF
As novidades da nova versão do Java 9
PPTX
Treinamento Elasticsearch - Parte 1
PPTX
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...
PDF
Cloud search avancado
ODP
Ruby on Rails 100% na cloud com heroku e outros serviços
PDF
JHipster - Produtividade e Maturidade em suas mãos
ODP
Presentation
PPT
Como um grande sistema REST funciona
PPTX
Ferramentas open-source
PDF
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Workshop Performance Rails
Diapositivos práticos - Integração de Sistemas.pdf
CDI Extensions e DeltaSpike
Projeto Octopus - Database Sharding para ActiveRecord
PHP RESTful Web Services - PHPConf'09
escalando aplicações django
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
Java 9, 10 e ... 11
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
As novidades da nova versão do Java 9
Treinamento Elasticsearch - Parte 1
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...
Cloud search avancado
Ruby on Rails 100% na cloud com heroku e outros serviços
JHipster - Produtividade e Maturidade em suas mãos
Presentation
Como um grande sistema REST funciona
Ferramentas open-source
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Anúncio

Mais de almeidaricardo (6)

PDF
Pipeline - Continuous Delivery
KEY
Excelencia puc
PAGES
Excelência - PUC
KEY
Event machine
KEY
Canaries in the air #gurusorocaba
KEY
Bdd e ci
Pipeline - Continuous Delivery
Excelencia puc
Excelência - PUC
Event machine
Canaries in the air #gurusorocaba
Bdd e ci
Anúncio

Buscas Poderosas Com Solr