Elasticsearch múltiple

Elasticsearch múltiple

Este artículo discutirá sobre cómo usar la API multi-get de Elasticsearch para obtener múltiples documentos JSON basados ​​en sus IDS. Además, ElasticSearch le permite usar una consulta de obtención única para recuperar los documentos de los índices utilizando solo las ID de documento.

Vamos a explorar.

Solicitar sintaxis

La siguiente es la sintaxis para la API multi-get de ElasticSearch:

Get /_mget
Obtener // _ mget

La API multi-get admite múltiples índices que le permite obtener los documentos incluso si no están en el mismo índice.

La solicitud admite los siguientes parámetros de ruta:

  1. - El nombre del índice desde el cual recuperar los documentos según lo especificado por sus IDS.

También puede especificar los otros parámetros de consulta como se muestra:

  1. Preferencia - Define el nodo o fragmento preferido.
  2. Tiempo real - Si se establece en verdadero, la operación se realiza en tiempo real.
  3. Actualizar - Obliga a la operación a actualizar los fragmentos objetivo antes de obtener los documentos especificados.
  4. Enrutamiento - Un valor que se utiliza para enrutar las operaciones a un fragmento específico.
  5. Store_fields - Recupera los campos de documento almacenados en un índice en lugar del documento.
  6. _fuente - Un valor booleano que define si la solicitud debe devolver el campo _Source o no.

La consulta requiere el cuerpo, que incluye los siguientes valores:

  1. Documento - Especifica los documentos que desea obtener. Además, esta sección admite los siguientes atributos:
    • _identificación - ID único del documento objetivo.
    • _índice - El índice que contiene el documento de destino.
    • Enrutamiento - La clave para el fragmento principal del documento.
    • _fuente - Si es cierto, incluye todos los campos de origen; de lo contrario, los excluye.
    • _Stored_fields - Los stored_fields que desea incluir.
  2. IDS - Las identificaciones de los documentos que desea obtener.

Ejemplo 1: Obtener múltiples documentos del mismo índice

El siguiente ejemplo muestra cómo usar la API multi-get de ElasticSearch para recuperar los documentos con ID específicos del índice Netflix:

curl -xget "http: // localhost: 9200/netflix/_mget" -h "kbn -xsrf: informes" -h "tipo de contenido: aplicación/json" -d '

"Documentos": [

"_id": "T3WNVombCK2AEZXPYTLJ"
,

"_id": "w3WnvombCK2AEZXPYTLJ"

]
'

La solicitud dada debe obtener los documentos con los ID especificados del índice de Netflix. La salida resultante es como se muestra:


"Documentos": [

"_index": "netflix",
"_id": "T3WNVombCK2AEZXPYTLJ",
"_versión 1,
"_seq_no": 0,
"_primary_term": 1,
"encontrado": verdadero,
"_fuente":
"Duración": "90 min",
"listed_in": "documentales",
"País: Estados Unidos",
"date_added": "25 de septiembre de 2021",
"show_id": "S1",
"Director": "Kirsten Johnson",
"Release_year": 2020,
"Calificación": "PG-13",
"Descripción": "A medida que su padre se acerca al final de su vida, el cineasta Kirsten Johnson presenta su muerte de formas inventivas y cómicas para ayudarlos a enfrentar a los inevitables.",
"Tipo": "Película",
"Título": "Dick Johnson está muerto"

,

"_index": "netflix",
"_id": "w3WnvombCK2AEZXPYTLJ",
"_versión 1,
"_seq_no": 12,
"_primary_term": 1,
"encontrado": verdadero,
"_fuente":
"País": "Alemania, República Checa",
"show_id": "S13",
"Director": "Christian Schwochow",
"Release_year": 2021,
"Calificación": "TV-Ma",
"Descripción": "Después de que la mayoría de su familia es asesinada en un bombardeo terrorista, una mujer joven es atraída de unirse al grupo que los mató.",
"Tipo": "Película",
"Título": "Je Suis Karl",
"Duración": "127 min",
"Listed_in": "Dramas, películas internacionales",
"Cast": "Luna Wedler, Jannis Niewöhner, Milán Peschel, Edin Hasanović, Anna Fialová, Marlon Boess, Victor Boccard, Fleur Geffrier, Aziz Dyab, Mélanie Fouché, Elizaveta Maximová",
"date_added": "23 de septiembre de 2021"


]

También podemos simplificar la solicitud colocando las ID de documento en una matriz simple como se muestra en la siguiente:

curl -xget "http: // localhost: 9200/netflix/_mget" -h "kbn -xsrf: informes" -h "tipo de contenido: aplicación/json" -d '

"IDS": ["T3WNVombCK2AEZXPYTLJ", "W3WNVOMBCK2AEZXPYTLJ"]
'

La solicitud anterior debe realizar una acción similar.

Ejemplo 2: obtenga los documentos de múltiples indes

En el siguiente ejemplo, la solicitud obtiene múltiples documentos de diferentes índices como se muestra:

curl -xget "http: // localhost: 9200/_mget" -h "kbn -xsrf: informes" -h "tipo de contenido: aplicación/json" -d '

"Documentos": [

"_index": "netflix",
"_id": "T3WNVombCK2AEZXPYTLJ"
,

"_index": "Disney",
"_id": "8J4WWOMB1YF5VQFAKCE4"

]
'

La salida resultante es como se muestra:

Ejemplo 3: excluir campos específicos

Podemos excluir campos específicos de una solicitud dada utilizando los parámetros Source_include y Source_Exclude.

Un ejemplo es como se muestra:

curl -xget "http: // localhost: 9200/_mget" -h "kbn -xsrf: informes" -h "tipo de contenido: aplicación/json" -d '

"Documentos": [

"_index": "netflix",
"_id": "T3WNVombCK2AEZXPYTLJ",
"_source": falso
,

"_index": "netflix",
"_id": "T3WNVombCK2AEZXPYTLJ",
"_fuente":
"Incluir": ["Listed_in", "Release_Year", "Título"],
"Excluir": ["Descripción", "tipo", "date_added"]


]
'

La solicitud dada utiliza la fuente incluir y excluir para especificar qué campos desea recuperar en un documento determinado.

La salida resultante es como se muestra:

Conclusión

En esta publicación, discutimos los fundamentos de trabajar con API multi-get de Elasticsearch que le permite obtener múltiples documentos de varias fuentes en función de sus IDS. Siéntase libre de explorar los otros documentos para obtener más información.

Codificación feliz!