Elasticsearch Get Document

Elasticsearch Get Document
«Elasticsearch est un moteur de recherche populaire et puissant qui peut gérer de grandes quantités de données. En ce sens, Elasticsearch peut être relatable à une base de données relationnelle car elle vous permet de stocker des données.

Comme toutes les bases de données, vous allez créer, récupérer, mettre à jour et supprimer des enregistrements de la base de données. Cependant, contrairement aux bases de données relationnelles, Elasticsearch ne fournit pas de langage de requête intégré tel que SQL, CQL, etc. Au lieu de cela, nous interagissons avec les points de terminaison de l'API qu'Elasticsearch expose, nous permettant de réaliser de nombreuses actions avec des appels HTTP simples."

Dans le post, vous découvrirez comment récupérer des documents stockés dans Elasticsearch à l'aide de l'API GET DOCUMENTS.

Syntaxe de l'API

L'API Get Document nous permet de récupérer les documents JSON stockés dans un index donné. L'extrait ci-dessous montre la syntaxe de demande pour récupérer les documents.

Get / _doc /<_id>

Vous pouvez également utiliser la méthode HTTP Head pour vérifier qu'un document existe au lieu de le retourner. La syntaxe est comme indiqué:

DIRIGER / _doc /<_id>

La demande prend les paramètres suivants:

  1. - Spécifie le nom de l'index sur lequel le document cible est stocké.
  2. - Spécifie l'ID unique du document cible.

La demande prend également en charge les paramètres de requête suivants. Ceux-ci vous permettent de modifier comment l'API se comporte et le résultat de la requête. Ces paramètres incluent:

  1. préférence - définit le nœud / fragment cible sur lequel le fetch est effectué.
  2. en temps réel - garantit que le résultat est absolu en temps réel, contrairement à la valeur par défaut, qui est proche en temps réel.
  3. Rafraîchissement - permet à la demande d'attendre la rafraîchissement périodique Elasticsearch. Ce paramètre peut également permettre à la demande de rafraîchir l'éclat avant d'effectuer l'opération de récupération.
  4. Routage - Spécifie les opérations de route vers un nœud / fragment spécifique.
  5. _Source - une valeur booléenne qui détermine si la demande renvoie ou non le fichier _Source déposé ou non.
  6. _Source_Excludes - Spécifie une liste des champs source exclus du résultat.
  7. _Source_includes - Champs source inclus dans le résultat.
  8. Version - Spécifie le numéro de version pour la gestion de la concurrence.

Valeur de retour

La demande de document GET aura les valeurs suivantes:

  1. _index - le nom de l'index dans lequel appartiennent les documents interrogés.
  2. _id - L'ID du document interrogé.
  3. _seq_no - Le numéro de séquence du document utilisé pour l'indexation.
  4. _primary_term - montre le terme principal du document.
  5. trouvé - indique si le dossier existe ou non comme une valeur booléenne.
  6. _ROUTING - représente le routage explicatif spécifié dans la demande.
  7. _Source - détient les données du document en tant que JSON.
  8. _field - montre les champs de document.

Exemple - Document de récupération d'Elasticsearch

L'exemple suivant montre comment récupérer un document avec l'ID de 'qxya7yib38eq5h5gt9ru' de l'index appelé 'kibana_sample_data_logs.'

curl -xget "http: // localhost: 9200 / kibana_sample_data_logs / _doc / qxya7yib38eq5h5gt9ru" -h "kbn-xsrf: reportage"

Une fois que nous avons exécuté la requête ci-dessus, nous devons obtenir une réponse comme indiqué:


"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_version 1,
"_seq_no": 2383,
"_primary_term": 1,
"Found": vrai,
"_source":
"Agent": "Mozilla / 5.0 (x11; Linux i686) Applewebkit / 534.24 (khtml, comme gecko) Chrome / 11.0.696.50 Safari / 534.24 ",
"octets": 4447,
"ClientIp": "70.141.48.11 ",
"Extension": "zip",
"Geo":
"srcdest": "nous: bd",
"src": "nous",
"dest": "bd",
"Coordonnées":
"Lat": 38.14893833,
"Lon": -89.69870972

,
"hôte": "Artefacts.élastique.co",
"index": "kibana_sample_data_logs",
"IP": "70.141.48.11 ",
"machine":
"Ram": 7516192768,
"OS": "Win 8"
,
"Mémoire": null,
"Message": "70.141.48.11 - - [2018-08-01T12: 14: 55.373Z] "get / kibana / kibana-6.3.2 windows-x86_64.zip http / 1.1 "200 4447" - "" Mozilla / 5.0 (x11; Linux i686) Applewebkit / 534.24 (khtml, comme gecko) Chrome / 11.0.696.50 Safari / 534.24 "",
"phpmemory": null,
"référer": "http: // twitter.com / Success / Mary-weber ",
"Demande": "/ kibana / kibana-6.3.2 windows-x86_64.zipper",
"Réponse": 200,
"Mots clés": [
"succès",
"Info"
]],
"horodat": "2022-08-31T12: 14: 55.373Z ",
"URL": "https: // artefacts.élastique.co / téléchargements / kibana / kibana-6.3.2 windows-x86_64.zipper",
"UTC_Time": "2022-08-31T12: 14: 55.373Z ",
"événement":
"DataSet": "Sample_web_logs"


Exemple 2 - Vérifiez si le document existe

Vous pouvez utiliser la méthode HTTP Head pour vérifier si un document avec l'ID spécifié existe avant de le chercher.

curl -xhead "http: // localhost: 9200 / kibana_sample_data_logs / _doc / qxya7yib38eq5h5gt9ru" -h "kbn-xsrf: reportage"

Si le document existe dans l'index, la demande renvoie un 200 - OK.

Sinon, si le document n'est pas trouvé dans l'index spécifié, la demande renvoie:


"Statuscode": 404,
"Erreur non trouvée",
"message": "404 - non trouvé"

Exemple 3 - Répondre aux champs spécifiques

Nous pouvons récupérer des champs spécifiques du document en définissant le paramètre source_incluses:

curl -xget "http: // localhost: 9200 / kibana_sample_data_logs / _doc / qxya7yib38eq5h5gt9ru?_Source_includes = *.ID, clientp, machine.OS, réponse "-H" KBN-XSRF: Reporting "

La demande ci-dessus doit récupérer les documents avec l'ID spécifié et renvoyer uniquement les champs ID, clientP, OS et réponse.

La réponse est comme indiqué:


"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_version 1,
"_seq_no": 2383,
"_primary_term": 1,
"Found": vrai,
"_source":
"ClientIp": "70.141.48.11 ",
"machine":
"OS": "Win 8"
,
"Réponse": 200

Conclusion

Dans cet article, vous avez exploré comment récupérer les documents d'un index Elasticsearch en utilisant l'API Get Document.