Consultas de búsqueda básicas en Elasticsearch: una guía completa

Consulta basada en palabras clave(Match Query)

La consulta de coincidencia se utiliza para buscar documentos que contengan palabras clave específicas. Devolverá documentos que tengan al menos una palabra clave correspondiente.

Ejemplo: busque productos cuyo nombre contenga la palabra clave laptop  en el products Index.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "name": "laptop"  
    }  
  }  
}  

 

Debe contener todas las palabras clave(Match Phrase Query)

La consulta de frase coincidente requiere que todas las palabras clave de la consulta aparezcan consecutivamente y en el orden correcto dentro del texto del documento.

Ejemplo: busque productos cuya descripción contenga la frase HP laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase": {  
      "description": "HP laptop"  
    }  
  }  
}  

 

Debe contener el prefijo de frase completo(Match Phrase Prefix Query)

La consulta Prefijo de frase de coincidencia es similar a Frase de coincidencia, pero permite una coincidencia parcial de la última palabra clave.

Ejemplo: busque productos cuya descripción comience por laptop.

GET /products/_search  
{  
  "query": {  
    "match_phrase_prefix": {  
      "description": "laptop"  
    }  
  }  
}  

 

Consulta basada en términos(Consulta de términos)

La consulta Término se utiliza para buscar documentos con un campo que tiene un valor exacto como se especifica.

Ejemplo: busque productos cuyo category campo tenga el valor laptop.

GET /products/_search  
{  
  "query": {  
    "term": {  
      "category": "laptop"  
    }  
  }  
}  

 

Consulta basada en rango(Range Query)

La consulta de rango ayuda a buscar documentos con un valor de campo dentro de un rango específico.

Ejemplo: Encuentra productos con precios entre 500 y 1000.

GET /products/_search  
{  
  "query": {  
    "range": {  
      "price": {  
        "gte": 500,  
        "lte": 1000  
      }  
    }  
  }  
}  

 

Consulta de nivel de término

Las consultas de nivel de término permiten buscar documentos en función de condiciones específicas como consultas exactas, de prefijo, de rango, comodín y aproximadas.

Ejemplo: Buscar productos cuyo nombre empiece por laptop y precios entre 500 y 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "prefix": {  
            "name": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

Full-Text Consulta

Full-Text Las consultas permiten buscar campos de texto utilizando algoritmos de análisis de texto para encontrar palabras similares o sinónimos.

Ejemplo: busque productos con descripciones que contengan computer  o laptop.

GET /products/_search  
{  
  "query": {  
    "match": {  
      "description": "computer laptop"  
    }  
  }  
}  

 

Consulta booleana

Boolean Las consultas permiten combinar varias subconsultas con diversas condiciones de búsqueda, como deben contener todas, deben contener al menos una o no deben contener, para lograr resultados de búsqueda precisos.

Ejemplo: Encuentra productos con el category ser laptop  y precios entre 500 y 1000.

GET /products/_search  
{  
  "query": {  
    "bool": {  
      "must": [  
        {  
          "term": {  
            "category": "laptop"  
          }  
        },  
        {  
          "range": {  
            "price": {  
              "gte": 500,  
              "lte": 1000  
            }  
          }  
        }  
      ]  
    }  
  }  
}  

 

Estas son las consultas de búsqueda básicas en Elasticsearch, junto con ejemplos ilustrados para cada tipo de consulta. Al usar Elasticsearch, puede combinar estas consultas para buscar datos de manera flexible y eficiente.