Elasticsearch obtiene documento

Elasticsearch obtiene documento
"Elasticsearch es un motor de búsqueda popular y potente que puede manejar grandes cantidades de datos. En ese sentido, ElasticSearch puede ser identificable con una base de datos relacional porque le permite almacenar datos.

Al igual que todas las bases de datos, creará, obtendrá, actualizará y eliminará registros de la base de datos. Sin embargo, a diferencia de las bases de datos relacionales, ElasticSearch no proporciona un lenguaje de consulta incorporado como SQL, CQL, etc. En cambio, interactuamos con los puntos finales de la API que expone Elasticsearch, lo que nos permite llevar a cabo numerosas acciones con simples llamadas HTTP."

En la publicación, descubrirá cómo obtener documentos almacenados en Elasticsearch utilizando la API GET Documents.

Sintaxis de API

La API GET Document nos permite obtener documentos JSON almacenados en un índice determinado. El fragmento a continuación muestra la sintaxis de la solicitud para obtener documentos.

Get /_doc /<_id>

También puede usar el método HTTP Head para verificar un documento existe en lugar de devolverlo. La sintaxis es como se muestra:

CABEZA /_doc/<_id>

La solicitud toma los siguientes parámetros:

  1. - Especifica el nombre del índice en el que se almacena el documento de destino.
  2. - Especifica la identificación única del documento de destino.

La solicitud también admite los siguientes parámetros de consulta. Estos le permiten modificar cómo se comporta la API y el resultado de la consulta. Estos parámetros incluyen:

  1. Preferencia: define el nodo/fragmento de destino en el que se lleva a cabo la búsqueda.
  2. Tiempo real: asegura que el resultado sea absoluto en tiempo real, a diferencia del valor predeterminado, que está casi en tiempo real.
  3. Actualizar: permite que la solicitud espere la actualización periódica de Elasticsearch. Este parámetro también puede permitir que la solicitud actualice el fragmento antes de realizar la operación de búsqueda.
  4. Enrutamiento: especifica las operaciones de ruta a un nodo/fragmento específico.
  5. _Source: un valor booleano que determina si la solicitud devuelve o no el _ource archivado.
  6. _source_excludes: especifica una lista de campos de origen excluidos del resultado.
  7. _Source_includes - Campos de origen incluidos en el resultado.
  8. Versión: especifica el número de versión para la gestión de concurrencias.

Valor de retorno

La solicitud GET Document tendrá los siguientes valores:

  1. _index: el nombre del índice en el que pertenecen los documentos consultados.
  2. _ID - La ID del documento consultado.
  3. _seq_no: el número de secuencia del documento utilizado para la indexación.
  4. _primary_term - muestra el término principal para el documento.
  5. Encontrado: indica si el registro existe o no como un valor booleano.
  6. _Routing - Representa el enrutamiento de explicación especificado en la solicitud.
  7. _Source: contiene los datos del documento como JSON.
  8. _field - muestra los campos de documento.

Ejemplo - Documento de Fetch Elasticsearch

El siguiente ejemplo muestra cómo obtener un documento con la ID de 'Qxya7yib38eq5h5gt9ru' del índice llamado 'kibana_sample_data_logs.'

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

Una vez que ejecutamos la consulta anterior, debemos obtener una respuesta como se muestra:


"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_versión 1,
"_seq_no": 2383,
"_primary_term": 1,
"encontrado": verdadero,
"_fuente":
"Agente": "Mozilla/5.0 (x11; Linux i686) AppleWebkit/534.24 (khtml, como gecko) Chrome/11.0.696.50 Safari/534.24 ",
"Bytes": 4447,
"Clientip": "70.141.48.11 ",
"Extensión": "Zip",
"Geo":
"SrcDest": "US: BD",
"Src": "nosotros",
"Dest": "BD",
"Coordenadas":
"Lat": 38.14893833,
"Lon": -89.69870972

,
"Anfitrión": "Artefactos.elástico.co",
"índice": "kibana_sample_data_logs",
"IP": "70.141.48.11 ",
"máquina":
"Ram": 7516192768,
"OS": "Win 8"
,
"Memoria": NULL,
"Mensaje": "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, como gecko) Chrome/11.0.696.50 Safari/534.24 "",
"PhpMemory": NULL,
"Referente": "http: // twitter.com/éxito/Mary-Weber ",
"Solicitar": "/kibana/kibana-6.3.2-Windows-X86_64.cremallera",
"Respuesta": 200,
"Etiquetas": [
"éxito",
"Información"
],
"TimeStamp": "2022-08-31T12: 14: 55.373Z ",
"URL": "https: // artefactos.elástico.CO/descargas/kibana/kibana-6.3.2-Windows-X86_64.cremallera",
"UTC_Time": "2022-08-31T12: 14: 55.373Z ",
"evento":
"DataSet": "sample_web_logs"


Ejemplo 2: verifique si existe el documento

Puede usar el método HTTP Head para verificar si existe un documento con el ID especificado antes de obtenerlo.

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

Si el documento existe en el índice, la solicitud devuelve un 200 - OK.

De lo contrario, si el documento no se encuentra en el índice especificado, la solicitud devuelve:


"Statuscode": 404,
"error no encontrado",
"Mensaje": "404 - No encontrado"

Ejemplo 3 - Obtener campos específicos

Podemos recuperar campos específicos del documento configurando el parámetro Source_includes:

curl -xget "http: // localhost: 9200/kibana_sample_data_logs/_doc/qxya7yib38eq5h5gt9ru?_source_includes =*.ID, cliente, máquina.OS, respuesta "-H" KBN -XSRF: Informes "

La solicitud anterior debe obtener los documentos con la identificación especificada y devolver solo el ID, el cliente, el sistema operativo y los campos de respuesta.

La respuesta es como se muestra:


"_index": "kibana_sample_data_logs",
"_id": "qxya7yib38eq5h5gt9ru",
"_versión 1,
"_seq_no": 2383,
"_primary_term": 1,
"encontrado": verdadero,
"_fuente":
"Clientip": "70.141.48.11 ",
"máquina":
"OS": "Win 8"
,
"Respuesta": 200

Conclusión

En este artículo, exploró cómo obtener documentos de un índice Elasticsearch utilizando la API GET Document.