Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

info:cursos:openwebinars:elk:elasticsearch:api-dslquery [29/11/2021 12:51] – creat mateinfo:cursos:openwebinars:elk:elasticsearch:api-dslquery [02/12/2021 09:51] (actual) mate
Línia 1: Línia 1:
 = ELK: elasticsearch (API y DSLQuery) = ELK: elasticsearch (API y DSLQuery)
 {{ :info:cursos:openwebinars:elk:elasticsearch:1.3_api_dsl_query.pdf |}} {{ :info:cursos:openwebinars:elk:elasticsearch:1.3_api_dsl_query.pdf |}}
 +  * API = Application Programming Interface. Capa abstracción funciones ofrecidas por la apliación
 +
 +== Cluster APIs
 +  * **Health**: ''GET _cluster/health?pretty''
 +    * status
 +      * green: todos los shard bien
 +      * yellow: no están bien las réplicas
 +      * red: shard primario no indexado
 +  * **Stats**: ''GET _cluster/stats?human&pretty''
 +    * estadísticas del cluster (número de shards, almacenamiento, uso de memoria)
 +    * información sobre los nodos (cantidad, roles, os, JVM, memoria, cpu, plugins)
 +  * **Info**: ''GET _nodes?pretty'' -> ''curl -XGET <IP>/_nodes''
 +    * Información de todos los nodos del cluster.
 +    * ''GET _nodes/nodeId1''
 +      * información concreta de uno de los nodos
 +    * nombre de host, puerto http, IP, OS, procesos, plugins...
 +
 +== Documents APIs
 +  * Index:
 +    * añade o actualiza un documento específico
 +    * <code>curl -XPUT "localhost:9200/twitter/tweet/1?pretty" -H
 +"Content-Type: application/json" -d"
 +  {
 +    "user":"openwebinars",
 +    "post_date": "2009-11-15T14:12:12"
 +    "message": "pruebaq en Elasticsearch"
 +  }"</code>
 +    * bdd: twitter
 +    * documento: 1
 +    * formato: json
 +  * Get:
 +    * permite consultar documentos JSON de un índice con su ID
 +    * <code>curl -XGET 'localhost:9200/twitter/tweet/1?pretty'</code>
 +  * Delete:
 +    * eliminar documentos con su ID
 +    * <code> curl -XDELETE 'http://localhost:9200/twitter/tweet/6?pretty</code>
 +  * Update:
 +    * actualiza la información de un documento. Consulta, actualiza y vuelve a indexar
 +    * <code>curl -XPOST 'localhost:9200/twitter/tweet/5/_update?pretty' -H 
 +'Content-Type: application/json' -d'
 +{
 +  "script": "ctx._source.new_field='valor nuevo campo' "
 +}'</code>
 +
 +== Search APIs
 +  * URI:
 +    * en la propia consulta: <code>curl -XGET 'localhost:9200/twitter/tweet/_search?q=user:openwebinars&pretty'</code>
 +    * <code>curl -XGET 'localhost:9200/twitter/tweet/_search?q=new_field:valor nuevo campo&pretty'</code>
 +    * cuerpo completo:<code>curl -XGET 'localhost:9200/twitter/tweet/_search?pretty'
 +-H 'Content-Type: application/json' -d'
 +{
 +  "query": {
 + "term":{"user":"user1"}
 + }
 +}'</code>
 +  * Templates:
 +    * plantillas para búsquedas repetidas y complejas, cambiando parámetros
 +    * <code>curl -XGET 'localhost:9200/_search/template?pretty' -H 'Content-Type:
 +application/json' -d’ {
 + "inline" : {
 + "query": { "match" : { "{{my_field}}" : "{{my_value}}" } },
 + "size" : "{{my_size}}"
 + },
 + "params" : {
 + "my_field" : "user",
 + "my_value" : "openwebinars",
 + "my_size" : 1
 + } } '</code>
 +  * Shards API
 +    * devuelve los índices y shards sobre los que se ejecutará la búsqueda. No hace la búsqueda en sí.
 +    * útil para búsqueda de errores u optimización de rendimiento
 +    * <code>curl -XGET 'localhost:9200/twitter/_serach_shards?pretty'</code>
 +  * 
 +== Index APIs
 +  * Create: se pueden crear múltiples índices, incluyendo operaciones
 +  * <code>curl -XPUT 'localhost:9200/new_index?pretty' -H 'ContentType: application/json' -d'
 + {
 + "settings" : {
 + "index" : {
 + "number_of_shards" : 3,
 + "number_of_replicas" : 2
 + } } }'</code>
 +    * new_index
 +  * Delete:
 +  * <code>curl -XDELETE 'localhost:9200/new_index?pretty'</code>
 +    * ojo con parámetros **_all** o **%%*%%**
 +    * parámetro **action.destructive_requires_name:true** para proteger borrados totales accidentales
 +  * Open/Close
 +    * un índice cerrado no sobrecarga el cluster
 +    * <code>curl -XPOST 'localhost:9200/new_index/_close?pretty'
 +curl -XPOST 'localhost:9200/new_index/_open?pretty'</code>
 +  * Mapping:
 +    * devuelve el mapping que se está realizando sobre un índice
 +    * <code>curl -XGET ‘localhost:9200/twitter/_mapping/tweet?pretty'</code>
 +    * se obtiene información sobre los campos.
 +    * el mapping hace un mapeo de los campos para declararlos y posteriormente poder acceder de una manera más organizada a la información: txt, fecha, número...
 +  * Stats:
 +    * estadísticas de los índices de diferentes operaciones
 +    * <code>curl -XGET 'localhost:9200/_stats?pretty'</code>
 +    * cantidad de documentos, almacenamiento, segmentos... (monitorización)
 +
 +== query DSL
 +  * usar JSON para definir consultas DSL (Lenguaje de Dominio Específico)
 +  * **query context**: calcula un _score que representa cómo de bien un documento hace match con la consulta en comparación con el resto (incluso podemos decirle que porcentaje de score permitimos)
 +    * match all: score 1.0 (100%)<code>curl -XGET 'localhost:9200/twitter/_search?pretty' -
 +H 'Content-Type: application/json' -d'
 +{
 + "query": {
 + "match_all": {}
 + }
 +}'</code>
 +    * match: <code>curl -XGET 'localhost:9200/twitter/_search?pretty' -
 +H 'Content-Type: application/json' -d'
 +{
 + "query": {
 + "match" : {
 + "user" : "user2"
 +} } } '</code>
 +     * regexp:
 +       * permite usar expresiones regulares. regexp pesadas pueden provocar un gran consumo de recursos
 +       * <code>curl -XGET 'localhost:9200/twitter/_search?pretty' -H
 +'Content-Type: application/json' -d'
 +{
 + "query": {
 + "regexp":{
 + "user": "user.*"
 +} } } '</code>
 +  * **filter context**: Solo sí o no coíncide con la consulta
 +    * filtros usados a menudo se cachean para mejorar rendimiento
 +
  • info/cursos/openwebinars/elk/elasticsearch/api-dslquery.1638219076.txt.gz
  • Darrera modificació: 29/11/2021 12:51
  • per mate