Rapport de recherche sur l'état de la recherche sur site dans l'enseignement supérieur avec The Chronicle of Higher Education | Télécharger le rapport
Rapport de recherche sur l'état de la recherche sur site dans l'enseignement supérieur avec The Chronicle of Higher Education | Télécharger le rapport

17 août 2022

Dipsy Kapoor

|

3 min de lecture

On nous demande souvent si les clients peuvent utiliser SolrJ pour se connecter aux déploiements Solr gérés par SearchStax. La réponse est oui, absolument !

Cet article de blog fournit un bref aperçu de SolrJ, explique pourquoi vous devez utiliser le client HttpSolrClient et partage un exemple de code pour utiliser SolrJ pour se connecter à SearchStax.

Note de l'éditeur : Managed Solr est désormais Recherche gérée SearchStaxIl s’agit du même excellent produit qui permet aux développeurs de configurer et de déployer l’infrastructure Solr en quelques minutes.

Qu'est-ce que SolrJ ?

Selon le Guide de référence d'Apache Solr« SolrJ est une API qui permet aux applications écrites en Java ou dans tout autre langage basé sur la JVM de communiquer facilement avec Solr. »

SolrJ masque de nombreux détails de connexion à Solr et utilise des méthodes simples et avancées pour interagir avec lui. L'API SolrJ est fournie avec Solr ; vous n'avez donc pas besoin de télécharger ni d'installer d'autres composants.

Connexion de SolrJ à Managed Solr via HttpSolrClient

Le client SolrJ recommandé à utiliser avec SearchStax Managed Solr est le HttpSolrClient – `org.apache.solr.client.solrj.impl.HttpSolrClient`. HttpSolrClient permet à un déploiement de se connecter directement à Solr via le point de terminaison Solr en utilisant HTTP. Les déploiements Solr de SearchStax sont configurés dans la configuration SolrCloud. De plus, pour des raisons de sécurité, nos nœuds Solr sont enregistrés auprès de Ensemble de gardiens de zoo utilisent des adresses IP privées et ne sont pas accessibles au public via leurs adresses IP publiques. Pour cette raison, les classes clientes SolrJ qui se connectent à Solr via Zookeeper ne fonctionnent pas pour les déploiements SearchStax.

Exemple de code pour se connecter à l'aide du client SolrJ

Voici un exemple de code qui vous permet de vous connecter à Solr, d'ajouter des documents et d'effectuer des requêtes avec le client SolrJ. Consultez ces notes avant d'utiliser cet exemple de code.

  • Authentification de base Notez que l'exemple de code montre comment se connecter à Solr avec l'authentification de base. Si vous ne disposez pas de l'authentification de base, vous pouvez ignorer la méthode « setBasicAuthCredentials ».
  • Filtrage IP – Si votre déploiement dispose d’un filtrage IP et que vous ne parvenez pas à vous connecter à Solr, assurez-vous que l’adresse IP de l’instance à partir de laquelle vous exécutez le code est sur liste blanche.
  • Déploiements privés – Pour les déploiements privés, votre code doit être exécuté à partir de l’instance à laquelle il est associé au déploiement Solr et a accès au déploiement Solr.

Commencer

importer java.io.IOException;
importer java.util.UUID;
importer org.apache.solr.client.solrj.SolrQuery;
importer org.apache.solr.client.solrj.SolrRequest;
importer org.apache.solr.client.solrj.SolrResponse;
importer org.apache.solr.client.solrj.SolrServerException;
importer org.apache.solr.client.solrj.impl.HttpSolrClient;
importer org.apache.solr.client.solrj.request.CollectionAdminRequest;
importer org.apache.solr.client.solrj.request.QueryRequest;
importer org.apache.solr.client.solrj.request.UpdateRequest;
importer org.apache.solr.client.solrj.response.QueryResponse;
importer org.apache.solr.client.solrj.response.UpdateResponse;
importer org.apache.solr.common.SolrDocument;
importer org.apache.solr.common.SolrInputDocument;
Chaîne url = "https://xxxxxxxxx-central-1-aws.searchstax.com/solr"; String collectionName = "searchstax” String config = "_default” String username = "myusername” String password = "mypassword”

Créer un client HTTP SolrJ

//Créer le client Http SolrJ HttpSolrClient client = nouveau HttpSolrClient.Builder(url). avecConnectionTimeout(10000). avecSocketTimeout(60000). build();

Créer une collection

//Créer une collection SolrRequest createRequest=CollectionAdminRequest.créer une collection(collectionName, config, 1, 1); request.setBasicAuthCredentials(nom d'utilisateur, mot de passe); SolrResponse response = request.process(client, collectionName);

Ajouter des documents à la collection

//Ajouter des documents à la collection UpdateRequest updateRequest = nouveau UpdateRequest(); updateRequest.setBasicAuthCredentials(nom d'utilisateur, mot de passe);
pour(int i=0; i<5; i++) {
final SolrInputDocument doc = nouveau SolrInputDocument(); doc.addField("id", UUID.UUID aléatoire().toString()); updateRequest.add(doc); } UpdateResponse response = request.process(client, collectionName); updateRequest.commit(client, collectionName);

Interrogez l'index et obtenez des résultats

//Interrogez l'index et obtenez les résultats SolrQuery solrQuery = nouveau SolrQuery(); solrQuery.setQuery("*:*"); solrQuery.set("fl","*"); solrQuery.setRows(10); QueryRequest queryRequest = nouveau QueryRequest(solrQuery); queryRequest.setBasicAuthCredentials(nom d'utilisateur, mot de passe); QueryResponse response = queryRequest.process(client, collectionName);
Système.dehors.println("Nombre total de documents : " + response.getResults().getNumFound());
pour(Document SolrDocument : response.getResults()) { System.dehors.println("----------- DOCUMEMENT ---------");
       pour(Nom de chaîne : document.getFieldNames()) { Valeur de l'objet = document.getFirstValue(nom); System.dehors.println(nom + ":" + valeur); } }
Si vous avez d'autres questions sur la connexion de SolrJ à SearchStax, soumettez une demande d'assistance depuis l'application ou contactez un membre de votre équipe Customer Success pour en savoir plus.

Par Dipsy Kapoor

vice-président, ingénierie

« …la recherche ne devrait pas être réservée uniquement aux organisations disposant de budgets de recherche massifs… »

Vous aimerez peut-être aussi :

fr_CAFrançais du Canada