English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

约定 API Elasticsearch

Web中的应用程序编程接口(API)是一组函数调用或其他编程指令,用于访问该特定Web应用程序中的软件组件。例如,Facebook API通过访问来自Facebook的数据或其他功能来帮助开发人员创建应用程序;它可以是出生日期或状态更新。

Elasticsearch提供了一个REST API,JSON可以通过HTTP访问该API。Elasticsearch使用一些约定,我们现在将对其进行讨论。

多个索引

API中的大多数操作,主要是搜索和其他操作,都是针对一个或多个索引的。这有助于用户只需执行一次查询,就可以在多个位置或所有可用数据中进行搜索。许多不同的符号用于在多个索引中执行操作。我们将在本章中讨论其中的一些。

逗号分隔符号

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /index1,index2,index3/_search

cuerpo solicitud

{
   "query":{
      
         "query":"any_string"
      }
   }
}

respuesta

来自index1, index2, index3的JSON对象中包含any_string。

_all 所有索引的关键字

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /_all/_search

cuerpo solicitud

{
   "query":{
      
         "query":"any_string"
      }
   }
}

respuesta

来自所有索引的JSON对象,其中包含any_string。

通配符(*,+,–)

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /*/_search

cuerpo solicitud

{
   "query":{
      
         
      }
   }
}

respuesta

Objeto JSON proveniente de todos los índices que comienzan con escuelas que contienen CBSE.

另外,您也可以使用以下代码-

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /*,-schools_gov /_search

cuerpo solicitud

{
   "query":{
      
         
      }
   }
}

respuesta

JSON对象来自所有以“school”开头的索引,但不是来自school_gov并包含CBSE的索引。

还有一些URL查询字符串参数-

  • ignore_unavailable−Si en la URL de index(es) no existe uno o más, no ocurrirá error o se detendrá cualquier operación. Por ejemplo, el índice school existe, pero book_shops no.

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /*/_search

cuerpo solicitud

{
   "query":{
      
         
      }
   }
}

cuerpo solicitud

{
   
      
         
         
         
      }],
      
      
      
   404
}

Considera el siguiente código-

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /*/

cuerpo solicitud

{
   "query":{
      
         
      }
   }
}

Respuesta (sin errores)

Objeto JSON proveniente de todos los índices que comienzan con escuelas que contienen CBSE.

allow_no_indices

trueSi la URL con comodines no tiene índices, el valor de este parámetro evitará errores. Por ejemplo, no hay índices que comiencen con schools_pri-

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /*/

cuerpo solicitud

{
   "query":{
      "match_all":{}
   }
}

Respuesta (sin errores)

{
   1
   
}

expand_wildcards

Este parámetro determina si los comodines deben expandirse a índices abiertos o cerrados, o si se deben ejecutar ambos. El valor de este parámetro puede ser abrir y cerrar, o no tener valor.

Por ejemplo, cerrar el índice de escuelas-

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /POST/

respuesta

Considera el siguiente código-

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /*/

cuerpo solicitud

{
   "query":{
      "match_all":{}
   }
}

respuesta

{
   
      
         
      }],
      
   }403
}

El soporte matemático de fechas en los nombres de índices

Elasticsearch ofrece la función de búsqueda de índices basada en fechas y horas. Necesitamos especificar la fecha y hora en un formato específico. Por ejemplo, accountdetail-2015.12.30, el índice almacenará2015año12mes30 día, se pueden realizar operaciones matemáticas para obtener detalles específicos de una fecha o rango de fechas y horas.

el formato del nombre del índice matemático de fecha-

<static_name{date_math_expr{date_format|time_zone}}>
/<accountdetail-{now-2d{YYYY.MM.dd|utc}}>/_search

static_name es parte de la expresión y se mantiene invariable en cada índice matemático de fecha (como detalles del cliente). date_math_expr contiene expresiones matemáticas que actúan como now-2d se determina dinámicamente la fecha y la hora. date_format contiene el formato en el que se escribe la fecha en índices como YYYY.MM.dd. Si hoy es2015año12mes30 día, entonces<accountdetail- {now-2d {YYYY.MM.dd}}>devolverá accountdetail-2015.12.28。

expresiónse interpreta como
<accountdetail-{now-d}>accountdetail-2015.12.29
<accountdetail-{now-M}>accountdetail-2015.11.30
<accountdetail-{now{YYYY.MM}}>accountdetail-2015.12

Ahora, veremos algunas opciones comunes proporcionadas por Elasticsearch que se pueden usar para obtener respuestas en formatos específicos.

Resultados mejorados

Podemos agregar parámetros de consulta de URL (es decir, pretty = true) para obtener respuestas en objetos JSON bien formateados.

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /POST/_search?pretty = true

cuerpo solicitud

{
   "query":{
      "match_all":{}
   }
}

respuesta

……………………..
{
   "_index" : "schools", "_type" : "school", "_id" : "1", "_score" : 1.0,
   "_source":{
      "name":"Central School", "description":"CBSE Affiliation",
      "street":"Nagan", "city":"paprola", "state":"HP", "zip":"176115",
      "location": [31.8955385, 76.8380405], "fees":2000,
      "tags":["Senior Secondary", "beautiful campus"], "rating":"3.5"
   }
}
………………….

Salida legible por humanos

Esta opción puede cambiar la forma de representar las estadísticas de respuesta a un formato legible por humanos (si human = true) o a un formato legible por computadoras (si human = false). Por ejemplo, si human = true, entonces distance_kilometer = 2 20KM; si human = false, entonces distance_meter =

0000, en ese caso se necesita otro programa informático para usar la respuesta.

filtrado respuesta

Al agregarlos al parámetro field_path, podemos filtrar la respuesta para campos menos frecuentes. Por ejemplo: /POST/schools

cuerpo solicitud

{
   "query":{
      "match_all":{}
   }
}

respuesta

{"hits":{"total":3}}