If you can't read please download the document
Upload
thibaud-vibes
View
4.596
Download
1
Embed Size (px)
Citation preview
Diapositive 1
Prsentation Apache Solr12 Aot 2011
Thibaud Vibes
Sommaire
Prsentation du projet
Les fonctionnalits de Solr
De base
Fonctionnalits coeur
Tunning
Questions?
Cas d'cole (si on a le temps)
Prsentation de Solr
Prsentation du projet
Se prononce SOLAR
Bas sur Lucene
Vocation: Fournir une solution de recherche avec indexation full
text pour
l'entreprise
Personnalisable
Sans avoir produire de code
Prise en charge de gros volumes
Sources multiples
Types de documents multiples
Prsentation du projet: Historique
LuceneCr par Doug Cutting (toujours commiter)
2001: Rejoins le projet Jakarta
2005: Top Level Project l'ASF
Solr
2004: Cr par Yonik Seeley pour les besoins de son
entreprise.
Seeley cr la socit Lucid Imagination
2006: Rejoins l'incubateur de l'ASF
2007: Devient un sous-projet Lucene
Mars 2010: Fusion des 2 projets
Mars 2011: Release de Solr 3.1
(numrotation identique Lucene)
Prsentation du projet: Eco systme
Portages:
Lucene.NET (C#)
PyLucene
Lucy (portage de Lucene en C)
(Delphi, C++, Perl, Ruby, PHP)
Projets utiliss/utilisant Solr/Lucene:
Carrot: Moteur de clustering open source => clustering de documents
Elastic Search(Lucene) : Alternative Solr Mode SaaS (cloud, yeah!)
Hibernate Search (Lucene)
Apache Nutch(Lucene, Hadoop) : Moteur de recherche web (crawler) Alternative Solr
Prsentation du projet: Quelques rfrences
Apple
Disney
Eclipse IDE (Recherche dans la documentation base sur Lucene)
Hi5 (rseau social)
MusicBrainz (encyclopdie sur la musique) Trait dans Solr 1.4 Enterprise Search Server
Nuxeo ECM
Sources:
Lucene Powered By
page(http://wiki.apache.org/lucene-java/PoweredBy)Solr Powered By
page (http://wiki.apache.org/solr/PublicServers)
Twitter search, depuis 2010 (version modifie de Lucene)
Source: Twitter Engineering blog
Prsentation du projet: Caractristiques
Ecrit en Java (Java 5)
Fonctionne dans un conteneur de Servlet 2.4 (ex: Tomcat) ou en mode Standalone (Jetty embarqu)
Exposition des services en HTTP (XML, JSON)
Indexation: JSON, XML, CSV, rich documents (PDF, MS Office, OpenDocument), base de donnes (via connecteurs)
Configuration via fichiers XML (pas d'UI)
Prsentation du projet: Caractristiques
Les fonctionnalits de Solr
Fonctionnalits
Recherche full text
Scoring des rsultats
Faceting
Highlighting
Replication
Caching
Clustering des rsultats de recherche (Bas sur Carrot)
Recherche Geo-spatiale
Field Collapsing / Grouping: regroupement ou limitation des rsultats
Fonctionnalits: TAL
Stemmatisation (Porter, Snowball)
Gestion de la synonymie (via dictionnaire)
Correction orthographique (spell checking + suggestion)
Recherche par sons (DoubleMetaphone, Metaphone, RefinedSoundex, and Soundex)
=> Multi-lingue
Fonctionnalitsde base - Ajouter un document
url: /update
Format: XML/HTTP POST, balise
Ne pas oublier le la fin! (pas en autocommit par dfaut)
Fonctionnalitsde base - Ajouter un document
url: /update
Format: XML/HTTP POST, balise
Ne pas oublier le la fin! (pas en autocommit par dfaut)
Exemple :
Fonctionnalitsde base - Modifier un document
Pas de notion de modification: save or update
url: /update
On r ajoute le document (avec tous les champs!)
Solr se base sur l'identifiant
Fonctionnalitsde base - Supprimer un document
url: /update
Format: XML/HTTP POST, balise
Delete by id
Delete by query
obligatoire
Fonctionnalitsde base - Supprimer un document
url: /update
Format: XML/HTTP POST, balise
Delete by id
Delete by query
obligatoire
Exemples :
Fonctionnalitsde base
(cf wiki ONYME Page SolrOU dossier /example/exampledocs/post.sh de l'archive apache-solr-*)
Fonctionnalitsde base - Recherche
url: /select
Format: HTTP GET (QueryString)
Forme: champ1:mot1 champ2:mot2 champs3:(mot1 mot2)
Oprateurs: AND, OR
Wildcard: *,? (sur certain types de champs seulement)
Hautement paramtrable
Fonctionnalitsde base - Recherche
url: /select
Format: HTTP GET (QueryString)
Forme: champ1:mot1 champ2:mot2 champs3:(mot1 mot2)
Oprateurs: AND, OR
Wildcard: *,? (sur certain types de champs seulement)
Hautement paramtrable
Exemple:Rechercher solr dans les champs content et
keyword_txt
=> content:solr keyword_txt:solrLimiter 10 rsultats
=> rows=10N'afficher que les champs content, filename et le
scoring
=> fl=content,filename,score
Fonctionnalitsde base
Recherche: Interface de tests (/solr/admin)
Fonctionnalitsde base - Recherche
Rsultats :
Tout objet implmentant SolrRequestHandler peut tre pris en
charge
pour le traitement de requtes et offrir un nouveau service
Fonctionnalitscoeur - RequestHandler
Plugin qui gre le traitement d'une requte
Permet de figer la personnalisation
A configurer dans ${SOLR_HOME}/conf/solrconfig.xml
La personnalisation peut tre surcharge lors de la requte
Offre une grande extensibilit Solr
Fonctionnalitscoeur - RequestHandler
Exemples de RequestHandler: XmlUpdateRequestHandler : ajout de documents XML
JsonUpdateRequestHandler
SearchHandler: traitement des requtes de recherche
DataImportHandler: Connecteur pour base de donnes
Doc: http://wiki.apache.org/solr/SolrRequestHandler
Fonctionnalitscoeur - RequestHandler
Exemple de paramtrage du SearchHandler:
url: /select
url: /showall
Fonctionnalitscoeur Schma (~index)
Apport de Solr par rapport Lucene
${SOLR_HOME}/conf/schemas.xml
Dfinition des types de champs
Dfinition des champs
Spcification de la cl primaire
Champ recherch par dfaut
Oprateur par dfaut (OR | AND)
Systme schemas-less !?
Doc: http://wiki.apache.org/solr/SchemaXml
Fonctionnalitscoeur Type de champs
Balise
Attributs
class (Ex: "solr.TextField")
name (Ex: "text")
stored (true|false)
indexed (true|false)
multiValued (true|false)
...
Analyzers (optionnels) = chanes de traitements
type="index"
type="query"
doc: http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters
3 Exemples :
Fonctionnalitscoeur Champs
Balise
Attributs
name, type, required
+ possibilit de surcharger les attributs dfinis dans le
type:
stored, indexed,multiValued,omitNorms, omitTermFreqAndPositions
Fonctionnalitscoeur Mais aussi ...
Pas besoin de redfinir le schemas si on souhaite ajouter des documents d'autres sources.
Schemas less