Tutoriel Apache Solr

Tutoriel Apache Solr
Dans cette leçon, nous verrons comment nous pouvons utiliser Apache Solr pour stocker les données et comment nous pouvons exécuter diverses requêtes.

Qu'est-ce qu'Apache Solr

Apache Solr est l'une des bases de données NoSQL les plus populaires qui peuvent être utilisées pour stocker les données et les interroger en temps proche en temps réel. Il est basé sur Apache Lucene et est écrit en java. Tout comme Elasticsearch, il prend en charge les requêtes de base de données via des API REST. Cela signifie que nous pouvons utiliser des appels HTTP simples et utiliser des méthodes HTTP comme Get, Post, Put, Supprimer, etc. Pour accéder aux données. Il offre également une option pour obtenir des données sous forme de XML ou JSON via les API REST.

Architecture: Apache Solr

Avant de pouvoir commencer à travailler avec Apache Solr, nous devons comprendre les composants qui constituent Apache Solr. Jetons un coup d'œil à certains composants qu'il a:

Architecture Apache Solr

Notez que seuls les principaux composants pour SOLR sont illustrés dans la figure ci-dessus. Comprenons également leur fonctionnalité ici:

  • Demander des gestionnaires: Les demandes qu'un client fait à SOLR est gérée par un gestionnaire de demandes. La demande peut être quelque chose de l'ajout d'un nouvel enregistrement pour mettre à jour un index dans SOLR. Les gestionnaires identifient le type de demande de la méthode HTTP utilisée avec le mappage de demande.
  • Composant de recherche: C'est l'un des composants les plus importants que Solr est connu. Le composant de recherche s'occupe de effectuer des opérations liées à la recherche comme le flou, les vérifications orthographiques, les requêtes à terme, etc.
  • Analyseur de requête: C'est le composant qui analyse réellement la requête qu'un client transmet au gestionnaire de demande et divise une requête en plusieurs parties qui peuvent être comprises par le moteur sous-jacent
  • Rédacteur: Ce composant est responsable de la gestion du format de sortie pour les requêtes transmises au moteur. L'écrivain de réponse nous permet de fournir une sortie dans divers formats comme XML, JSON, etc.
  • Analyseur / tokenizer: Lucene Engine comprend les requêtes sous la forme de jetons multiples. Solr analyse la requête, la divise en plusieurs jetons et le transmet au moteur lucene.
  • Mettre à jour le processeur de demande: Lorsqu'une requête est exécutée et qu'elle effectue des opérations comme la mise à jour d'un index et des données qui y sont liées, le composant de processeur de demande de mise à jour est responsable de la gestion des données dans l'index et de la modification.

Début avec Apache Solr

Pour commencer à utiliser Apache Solr, il doit être installé sur la machine. Pour ce faire, lisez installer Apache Solr sur Ubuntu.

Assurez-vous d'avoir une installation SOLR active si vous souhaitez essayer des exemples que nous présentons plus tard dans la page de leçon et d'administration est accessible sur localhost:

Page d'accueil d'Apache Solr

Insérer des données

Pour commencer, considérons une collection dans Solr que nous appelons Linux_Hint_Collection. Il n'est pas nécessaire de définir explicitement cette collection comme lorsque nous insérons le premier objet, la collection sera faite automatiquement. Essayons notre premier appel API REST pour insérer un nouvel objet dans la collection nommée Linux_Hint_Collection.

Insérer des données

curl -x post -h 'contenu-type: application / json'
'http: // localhost: 8983 / solr / linux_hint_collection / update / json / docs' --data-binary '

"id": "iduye",
"Nom": "Shubham"
'

Voici ce que nous récupérons avec cette commande:

Commande pour insérer des données dans SOLR

Les données peuvent également être insérées à l'aide de la page d'accueil SOLR que nous avons examinée plus tôt. Essayons ceci ici afin que les choses soient claires:

Insérer des données via la page d'accueil de SOLR

Comme Solr a un excellent moyen d'interaction avec les API RESTful HTTP, nous démontrerons l'interaction DB en utilisant les mêmes API à partir de maintenant et ne nous concentrerons pas beaucoup sur l'insertion des données via la page Web Solr.

Énumérez toutes les collections

Nous pouvons également répertorier toutes les collections d'Apache Solr en utilisant une API REST. Voici la commande que nous pouvons utiliser:

Énumérez toutes les collections

curl http: // localhost: 8983 / solr / admin / collections?actions = list & wt = json

Voyons la sortie de cette commande:

Nous voyons deux collections ici qui existent dans notre installation Solr.

Obtenez un objet par ID

Maintenant, voyons comment nous pouvons obtenir des données de la collection Solr avec un ID spécifique. Voici la commande REST API:

Obtenez un objet par ID

curl http: // localhost: 8983 / solr / linux_hint_collection / get?id = iduye

Voici ce que nous récupérons avec cette commande:

Obtenez toutes les données

Dans notre dernière API REST, nous avons interrogé des données en utilisant un ID spécifique. Cette fois, nous obtiendrons toutes les données présentes dans notre collection Solr.

Obtenez un objet par ID

curl http: // localhost: 8983 / solr / linux_hint_collection / select?Q = *: *

Voici ce que nous récupérons avec cette commande:

Notez que nous avons utilisé '*: *' dans le paramètre de requête. Cela spécifie que SOLR doit renvoyer toutes les données présentes dans la collection. Même si nous avons spécifié que toutes les données devaient être renvoyées, Solr comprend que la collection pourrait contenir une grande quantité de données et ainsi, il ne retournera que les 10 premiers documents.

Suppression de toutes les données

Jusqu'à présent, toutes les API que nous avons essayées utilisaient un format JSON. Cette fois, nous allons essayer le format de requête XML. L'utilisation du format XML est extrêmement similaire à JSON car XML est également auto-descriptive.

Essayons une commande pour supprimer toutes les données que nous avons dans notre collection.

Suppression de toutes les données

Curl "http: // localhost: 8983 / solr / linux_hint_collection / mise à jour?commet = true "-H" Content-Type: text / xml "--data-binary" *: * "

Voici ce que nous récupérons avec cette commande:

Supprimer toutes les données à l'aide de la requête XML

Maintenant, si nous essayons à nouveau d'obtenir toutes les données, nous verrons qu'aucune donnée n'est disponible maintenant:

Obtenez toutes les données

Nombre total d'objets

Pour une commande finale Curl, voyons une commande avec laquelle nous pouvons trouver le nombre d'objets qui sont présents dans un index. Voici la commande pour la même chose:

Nombre total d'objets

curl http: // localhost: 8983 / solr / linux_hint_collection / requête?Debug = Query & Q = *: *

Voici ce que nous récupérons avec cette commande:

Compter le nombre d'objets

Conclusion

Dans cette leçon, nous avons examiné comment nous pouvons utiliser Apache Solr et passer des requêtes en utilisant Curl au format JSON et XML. Nous avons également vu que le panneau d'administration SOLR est utile de la même manière que toutes les commandes de curl que nous avons étudiées.