Introduction à

 
 
 
Par Sébastien Rodriguez
@sebtiz13

Who I am

 
  • Développeur chez laëtis
  • Développeur front/backend PHP et Js
  • Éternel perfectionniste et optimiseur

Bref historique 

 
Créer par Cnet Networks basé sur Lucene (apache)
 
  • 2006 : devient open-source et est confié à la fondation Apache
  • 2008 Solr  1.3 (amélioration et reherche distribué)
  • 2011 : Fusio de Lucene et Solr
  • 2015 : Fonction OCR et Solr Cloud

Qu'est-que c'est ?

 
  • Serveur de recherche full-text
  • Structure non fixe
  • Recherche à facette
  • Clusterisable

On peut le faire sois même avec

quelques requête SQL !

Fonctionnalités existantes

  • Recherches à facettes
  • Surlignage des termes trouvés
  • Résultat avec score
  • Flexibilité de la pertinence (boost)
  • Recherche géospatial
  • Synonymes

Qui l'utilise ?

Un exemple ?

Un peu de lexique

  • Schéma : configuration de l'index

  • Index : ensemble de documents

  • Document : ensemble de fields (champs)

Comment ça marche ?

5 minutes pour débuter

http://www.solrtutorial.com/solr-in-5-minutes.html

Installation

# wget http://download.nextag.com/apache/lucene/solr/6.6.0/solr-6.6.0.tgz
# tar -zxvf solr-6.6.0.tgz
# cd solr-6.6.0

Java 1.8 pour la 6.6
Java 1.9 pour la 7.0

Premiers exemples

# bin/solr -e techproducts

Creating Solr home directory /tmp/solrt/solr-6.6.0/example/techproducts/solr

Starting up Solr on port 8983 using command:
bin/solr start -p 8983 -s "example/techproducts/solr"

Waiting up to 30 seconds to see Solr running on port 8983 [/]  
Started Solr server on port 8983 (pid=12281). Happy searching!

...
    
Solr techproducts example launched successfully. Direct your Web browser to 
http://localhost:8983/solr to visit the Solr Admin UI

Vérification

# bin/solr status

Found 1 Solr nodes: 

Solr process 12281 running on port 8983
{
  "solr_home":"/tmp/solrt/solr-5.3.0/example/techproducts/solr/",
  "version":"5.3.0 1696229 - noble - 2015-08-17 17:10:43",
  "startTime":"2015-09-14T22:41:56.876Z",
  "uptime":"0 days, 0 hours, 1 minutes, 7 seconds",
  "memory":"32.7 MB (%6.7) of 490.7 MB"}

Indexé du contenu

<add><doc>
  <field name="id">13011994</field>
  <field name="name">Sebtiz13</field>
  <field name="manu">Internet</field>
...
  <field name="inStock">true</field>
</doc></add>
# cd example/exampledocs
# java -Dc=techproducts -jar post.jar sd500.xml

SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/solr/techproducts/update using
content-type application/xml...
POSTing file sd500.xml to [base]
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/techproducts/update...
Time spent: 0:00:00.186

2 Solutions :

  1. HTTP

  2. Native client

Notre première recherche

{
    "responseHeader": {
        "status": 0,
        "QTime": 3,
        "params": {
            "q": "sd500",
            "wt": "json"
        }
    },
    "response": {
        "numFound": 1,
        "start": 0,
        "docs": [
            {
                "id": "9885A004",
                "name": "Canon PowerShot SD500",
                ...
                "_version_": 1512330534874775600
            }
        ]
    }
}
{
    "responseHeader": {
        "status": 0,
        "QTime": 3,
        "params": {
            "fl": "id,name",
            "q": "inStock:false",
            "wt": "json"
        }
    },
    "response": {
        "numFound": 2,
        "start": 0,
        "docs": [
            {
                "id": "EN7800GTX/2DHTV/256M",
                "name": "ASUS Extreme N7800GTX/2DHTV (256 MB)"
            },
            {
                "id": "100-435805",
                "name": "ATI Radeon X1900 XTX 512 MB PCIE Video Card"
            }
        ]
    }
}

Stock disponible

Syntaxe basique

Texte :

  • title:foo

  • title:"foo bar"

  • title:foo*

 

Nombre :

  • price:1159

  • price:[419 TO 1159]

Syntaxe spécifique

Plus ou moins :

  • price:[* TO 1159]

  • price:[419 TO *]  

 

Pas vide :

price:[* TO *]

 

Negatif :

-inStock:false

C'est l'heure du test !

Pour aller plus loin

Merci !

Made with Slides.com