introdução a buscas com solr

20
Introdução a buscas com Solr +

Upload: claudson-oliveira

Post on 28-Nov-2014

605 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Introdução a buscas com solr

Introdução a buscas com Solr

+

Page 3: Introdução a buscas com solr
Page 4: Introdução a buscas com solr

select * from produtos where nome like '%batman%'

batman

Batman Arkham Asylum Batman Arkham City Batman Arkham Origins

Page 5: Introdução a buscas com solr

batman city

select * from produtos where nome like '%batman%' and nome like '%city%'

Batman Arkham City

Page 6: Introdução a buscas com solr

batman ps3

select * from produtos where nome like '%batman%' and nome like '%ps3%'

Page 7: Introdução a buscas com solr

batman ps3

select * from produtos where (nome like '%batman%' and nome like '%ps3%') or (genero like '%batman%' and genero '%ps3%' ) or (nome like '%batman%' or nome like '%ps3%' or genero like '%batman%' or genero '%ps3%' )

Batman Arkham Origins

Page 8: Introdução a buscas com solr

cartões de visita == cartão de visita ?

Celular == iphone?

CAPA DE NOTEBOOK == Capa de Notebook ? Filtros?

cade == cadern == caderno ?

Page 9: Introdução a buscas com solr

Solr ?

Page 10: Introdução a buscas com solr

Java 6

Lucene ou Solr 4.5.1?

http://Localhost:8983

Apache License version 2 link

Referência

Jetty

Page 11: Introdução a buscas com solr

Núcleos

<?xml version="1.0" encoding="UTF-8" ?> <solr> <cores adminPath="/admin/cores"> <core name="produto" instanceDir="produto" /> </cores> </solr>

solrSkeleton/schemas/solr.xml

Page 12: Introdução a buscas com solr

Esquemas

solrSkeleton/schemas/product/conf/schema.xml

Documento = Linha no banco

Esquema = Estrutura de dado

<?xml version="1.0" encoding="UTF-8"?> <schema name="Product" version="1.1"> <types> <!-- tipos --> </types> <fields> <!-- campos --> </fields> </schema>

Page 13: Introdução a buscas com solr

Esquemas - tipos

solrSkeleton/schemas/product/conf/schema.xml

<?xml version="1.0" encoding="UTF-8"?> <schema name="Product" version="1.1"> <types> <fieldType name="inteiro" class="solr.IntField" /> <fieldType name=“frase" class="solr.StrField" /> </types> <fields> <field name="numero_compras" type="inteiro" />

</fields> </schema>

Classe Descrição

Solr. IntField Inteiros de 32bits com sinal

Solr.StrField String

Solr.TextField Text, usually multiple words or tokens.

Solr.DateTime “Y-m-d H:i:s”

Referência

Page 14: Introdução a buscas com solr

Esquemas - Filtros

solrSkeleton/schemas/product/conf/schema.xml

<?xml version="1.0" encoding="UTF-8"?> <schema name="Product" version="1.1"> <types> <fieldType name="inteiro" class="solr.IntField" /> <fieldType name=“frase" class="solr.String" />

<fieldType name=“complexo" class=“solr.TextField"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" words="stopwords.txt" /> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.BrazilianStemFilterFactory"/> </analyzer>

</fieldType>

</types> <fields> <field name="numero_compras" type="inteiro" />

</fields> </schema>

solrSkeleton/schemas/product/conf/schema.xml

Page 15: Introdução a buscas com solr

Esquemas - Filtros <filter class="solr.StopFilterFactory" words="stopwords.txt" /> <filter class="solr.LowerCaseFilterFactory"/>

Cartão de Visita

Cartão Visita

cartao visita

cartao visita

Cartao de visita Cartão Visita

Page 16: Introdução a buscas com solr

Esquemas - Filtros

Filtro Exemplo

TrimFilterFactory “ phpsp” => “phpsp”

StopFilterFactory “encontro de novembro” => “encontro novembro”

EdgeNGramFilterFactory “programador” => “pro” , “progr” ... “programador”

WordDelimiterFilterFactory “phpSp” => “php”, “sp” / “git2u” => “git” , “2” , “u”

SynonymFilterFactory “celular” => “iphone”, “galaxy”, “foston”, “celular”

Referência

Page 17: Introdução a buscas com solr

Handler

solrSkeleton/schemas/product/conf/solrconfig.xml

<?xml version="1.0" encoding="UTF-8" ?> <config> <luceneMatchVersion>4.4</luceneMatchVersion> <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/> <dataDir>${solr.core0.data.dir:}</dataDir> <schemaFactory class="ClassicIndexSchemaFactory"/> <updateHandler class="solr.DirectUpdateHandler2" /> <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" /> <requestHandler name="/update" class="solr.XmlUpdateRequestHandler" /> <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" /> <admin> <defaultQuery>solr</defaultQuery> </admin> </config>

Page 18: Introdução a buscas com solr

Como salvar/atualizar um documento solr ? POST http://locahost:8983/solr/product/update HTTP/1.1 Content-Type: text/xml <add> <doc> <field name="fieldname1">field valueA</field> <field name="fieldname2">field valueB</field> </doc </add>

Page 19: Introdução a buscas com solr

Ferramentas Solr Pecl - http://pecl.php.net/package/solr

Solarium - http://www.solarium-project.org/

SolrBundle - https://github.com/floriansemm/SolrBundle

Replication http://wiki.apache.org/solr/SolrReplication

SpellChecker http://wiki.apache.org/solr/SpellCheckComponent

Leia mais

Ascii cast http://asciinema.org/a/6219

Livro http://www.packtpub.com/apache-solr-4-cookbook/book

http://lucene.apache.org/solr/

Caching http://wiki.apache.org/solr/SolrCaching

http://blog.sematext.com/2012/08/23/solr-vs-elasticsearch-part-1-overview/

Page 20: Introdução a buscas com solr

Dúvidas ?

@cloudson