Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Introduo a buscas com Solr

+
@cloudson
Claudson Oliveira
cloudson.github.io
select * from produtos
where nome like '%batman%'
batman
Batman Arkham Asylum Batman Arkham City Batman Arkham Origins
batman city
select * from produtos
where nome like '%batman%' and nome like '%city%'

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

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
cartes de visita == carto de visita ?
Celular == iphone?
CAPA DE NOTEBOOK == Capa de Notebook ?
Filtros?
cade == cadern == caderno ?
Solr ?
Java 6
Lucene ou Solr 4.5.1?
http://Localhost:8983
Apache License version 2 link
Referncia
Jetty
Ncleos
<?xml version="1.0" encoding="UTF-8" ?>
<solr>
<cores adminPath="/admin/cores">
<core name="produto" instanceDir="produto" />
</cores>
</solr>
solrSkeleton/schemas/solr.xml
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>
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 Descrio
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
Referncia
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
Esquemas - Filtros
<filter class="solr.StopFilterFactory" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
Carto de Visita
Carto Visita
cartao visita
cartao visita
Cartao de visita Carto Visita
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
Referncia
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>
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>

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/
Dvidas ?
@cloudson

You might also like