Embora seja uma API pequena, é uma ferramenta muito benéfica, especialmente para desenvolvedores provenientes de bancos de dados SQL. Também pode reduzir a curva de aprendizado, relacionando rapidamente as consultas SQL às consultas de pesquisa correspondentes.
Você pode explorar os recursos completos da API de pesquisa Elasticsearch e as linguagens de consulta suportadas.
É para ter em mente que, embora o Elasticsearch suporta o SQL, ele contém várias limitações.
Sintaxe de consulta
A seguir, mostra a sintaxe da API de tradução:
Obtenha _sql/traduçãoVocê também pode enviar uma solicitação de postagem para a API de tradução, conforme mostrado na seguinte sintaxe:
Post _sql/traduçãoDependendo da sua configuração de cluster, a API pode exigir privilégios de leitura no índice cujos dados você deseja consultar. Você também pode especificar o recurso de destino como um alias de índice ou um fluxo de dados.
No pedido, você pode especificar todos os parâmetros do corpo da API de pesquisa de pesquisa SQL. Explore os documentos fornecidos no seguinte recurso para saber mais:
https: // www.elástico.CO/guia/pt/elasticsearch/reference/current/sql-search-api.HTML#SQL-SECH-API-REQUEST-BODO
Como resposta, a consulta deve retornar o resultado correspondente à API de pesquisa com os dados consultados.
Exemplo
Para ilustrar melhor como usar esta API, assumiremos que temos um índice chamado "Netflix" contendo todos os dados sobre filmes e programas de TV da Netflix.
Suponha que desejemos buscar os cinco principais filmes do índice da Netflix que lançamos no ano de 2020 e acima:
A consulta SQL equivalente pode ser expressa como mostrado abaixo:
Selecione Título, Duração, Classificação, Digite de Netflix WHERE TIPO = 'FILME' E RELELHADE_YEAR> = 2020Para executar a pesquisa SQL acima no Elasticsearch, podemos colocá -la na API de pesquisa SQL, como mostrado abaixo:
Curl -xget "http: // localhost: 9200/_sql?formato = txt "-h" kbn -xsrf: relatórios "-h" conteúdo -tipo: aplicativo/json "-d 'A solicitação anterior deve consultar o índice e buscar os registros correspondentes. A saída de retorno está em formato de texto, conforme fornecido abaixo:
Como podemos ver, elasticsearch retorna a saída esperada.
Para retornar a saída como JSON, podemos definir o formato como JSON, como mostrado abaixo:
Curl -xget ""http: // localhost: 9200/_sql?formato = json ""-h"" kbn -xsrf: relatórios ""-h"" conteúdo -tipo: aplicativo/json ""-d 'Saída:
Converta a consulta SQL em solicitação de pesquisa
Para converter a consulta anterior de pesquisa do SQL em uma solicitação de pesquisa de elasticidade, podemos passar para a API de tradução, como mostrado abaixo:
Curl -xget ""http: // localhost: 9200/_sql/tradutor"" -h ""kbn -xsrf: relatórios"" -h ""content -type: aplicativo/json"" -d 'A API deve analisar a entrada de entrada SQL e convertê -la em uma solicitação de pesquisa válida, conforme mostrado na seguinte saída:
Você pode usar este formato de solicitação para enviar para a API de pesquisa Elasticsearch, como mostrado abaixo:
Curl -xpost ""http: // localhost: 9200/netflix/_search"" -h ""kbn -xsrf: relating"" -h ""content -type: aplicativo/json"" -d 'Da mesma forma, a solicitação deve retornar dados semelhantes, conforme mostrado abaixo:
Conclusão
Através deste post, você descobriu como poderia usar as consultas SQL para buscar dados de um índice de pesquisa de elasticidade existente. Você também aprendeu a usar a API de tradução SQL para converter uma consulta SQL válida em uma solicitação de pesquisa de elasticidade.
"