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' |