Consultas básicas de pesquisa em Elasticsearch: um guia abrangente

Consulta baseada em palavras-chave(Match Query)

A consulta Match é usada para procurar documentos que contenham palavras-chave específicas. Ele retornará documentos que possuem pelo menos uma palavra-chave correspondente.

Exemplo: encontre produtos com o nome contendo a palavra-chave laptop  no arquivo products Index.

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

 

Deve conter todas as palavras-chave(Match Phrase Query)

A consulta Match Phrase requer que todas as palavras-chave na consulta apareçam consecutivamente e na ordem correta no texto do documento.

Exemplo: encontre produtos com a descrição contendo a frase HP laptop.

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

 

Deve conter todo o prefixo da frase(Match Phrase Prefix Query)

A consulta Match Phrase Prefix é semelhante à Match Phrase, mas permite uma correspondência parcial da última palavra-chave.

Exemplo: Encontre produtos com a descrição começando com laptop.

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

 

Consulta baseada em termos(Term Query)

A consulta Termo é usada para pesquisar documentos com um campo com um valor exato conforme especificado.

Exemplo: Encontre produtos com o category campo tendo o valor laptop.

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

 

Consulta baseada em intervalo(Range Query)

A consulta Intervalo ajuda a pesquisar documentos com um valor de campo dentro de um intervalo especificado.

Exemplo: Encontre produtos com preços entre 500 e 1000.

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

 

Consulta de nível de termo

As consultas de nível de termo permitem pesquisar documentos com base em condições específicas, como consultas Exatas, Prefixo, Intervalo, Curinga e Fuzzy.

Exemplo: Encontre produtos com o nome começando por laptop e preços entre 500 e 1000.

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

 

Full-Text Consulta

Full-Text as consultas permitem pesquisar campos de texto usando algoritmos de análise de texto para encontrar palavras ou sinônimos semelhantes.

Exemplo: encontre produtos com descrições contendo computer  ou laptop.

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

 

Consulta Booleana

Boolean As consultas permitem combinar várias subconsultas com diversas condições de pesquisa, como deve conter tudo, deve conter pelo menos uma ou não deve conter, para obter resultados de pesquisa precisos.

Exemplo: Encontre produtos com category valor laptop  e preços entre 500 e 1000.

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

 

Estas são as consultas de pesquisa básicas em Elasticsearch, juntamente com exemplos ilustrados para cada tipo de consulta. Ao usar Elasticsearch, você pode combinar essas consultas para pesquisar dados de maneira flexível e eficiente.