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 :
HTTP
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 !
Introduction solr
By sebtiz13
Introduction solr
Solr est une plateforme REST de moteur de recherche, c’est un logiciel open-source s’appuyant sur Lucene. Il fournit de la recherche full-text, recherche à facettes,mise en évidences, de la recherche géospatiale …. (sur youtube : https://www.youtube.com/watch?v=JIdqDtMk2KA)
- 1,302