Section courante

A propos

Section administrative du site

Monter la recherche Solr rapide

Cet exercice vous expliquera comment commencer à utiliser Solr en seulement quelques minutes !

Lancer Solr en mode SolrCloud

Pour lancer Solr, exécutez :

Pour démarrer un autre noeud Solr et le faire rejoindre l'unité d'allocation aux côtés du premier noeud :

bin/solr start -c -z localhost:9983 -p 8984

Créer une collection

Comme un système de base de données conserve les données dans des tables, Solr conserve les données dans des collections. Une collection peut être créée comme suit :

curl --request POST \
--url http://localhost:8983/api/collections \
--header 'Content-Type: application/json' \
--data '{
  "name": "produitstech",
  "numShards": 1,
  "replicationFactor": 1
}'

Définir un schéma

Définissons quelques-uns des champs que contiendront nos documents :

curl --request POST \
  --url http://localhost:8983/api/collections/produitstech/schema \
  --header 'Content-Type: application/json' \
  --data '{
  "add-field": [
    {"name": "name", "type": "text_general", "multiValued": false},
    {"name": "cat", "type": "string", "multiValued": true},
    {"name": "manu", "type": "string"},
    {"name": "features", "type": "text_general", "multiValued": true},
    {"name": "weight", "type": "pfloat"},
    {"name": "price", "type": "pfloat"},
    {"name": "popularity", "type": "pint"},
    {"name": "inStock", "type": "boolean", "stored": true},
    {"name": "store", "type": "location"}
  ]
}'

Indexer certains documents

Un seul document peut être indexé comme suit :

curl --request POST \
--url 'http://localhost:8983/api/collections/produitstech/update' \
  --header 'Content-Type: application/json' \
  --data ' {
    "id" : "979-8489937313",
    "cat" : ["livre","couverture rigide"],
    "name" : "Vingt Mille Lieues sous les mers",
    "author" : "Jules Verne",
    "series_t" : "Science-fiction du IXXième siècle",
    "sequence_i" : 1,
    "genre_s" : "Science-Fiction",
    "inStock" : true,
    "price" : 12.50,
    "pages_i" : 384
  }'

Plusieurs documents peuvent être indexés dans la même requête :

curl --request POST \
  --url 'http://localhost:8983/api/collections/produitstech/update' \
  --header 'Content-Type: application/json' \
  --data ' [
  {
    "id" : "979-8492533861",
    "cat" : ["livre","couverture rigide"],
    "name" : "L'Île mystérieuse",
    "author" : "Jules Verne",
    "series_t" : "Science-fiction du IXXième siècle",
    "sequence_i" : 1,
    "genre_s" : "Science-Fiction",
    "inStock" : true,
    "price" : 12.50,
    "pages_i" : 384
  }
,
  {
    "id" : "979-8857779002",
    "cat" : ["livre","livre de poche"],
    "name" : "Une ville flottante",
    "author" : "Jules Verne",
    "series_t" : "Science-fiction du IXXième siècle",
    "sequence_i" : 2,
    "genre_s" : "Science-Fiction",
    "inStock" : true,
    "price" : 6.49,
    "pages_i" : 304
  }
]'

Un fichier contenant les documents peut être indexé comme suit :

curl -H "Content-Type: application/json" \
  -X POST \
  -d @example/exampledocs/books.json \
  --url 'http://localhost:8983/api/collections/produitstech/update?commit=true'

Valider les modifications

Une fois les documents indexés dans une collection, ils ne sont pas immédiatement disponibles pour la recherche. Pour qu'ils soient consultables, une opération de validation (également appelée actualisation dans d'autres moteurs de recherche comme OpenSearch,...) est nécessaire. Les validations peuvent être planifiées à intervalles réguliers à l'aide des validations automatiques comme suit.

curl -X POST -H 'Content-type: application/json' -d '{"set-property":{"updateHandler.autoCommit.maxTime":15000}}' http://localhost:8983/api/collections/produitstech/config

Effectuez quelques recherches de base

Vous pouvez maintenant essayer de rechercher vos documents comme :

curl 'http://localhost:8983/solr/produitstech/select?q=name%3Alightning'


Dernière mise à jour : Vendredi, le 16 août 2024