Ir para o conteúdo
Totalmente local

Construtor de queries Elasticsearch

Converta uma lista de condições campo/operador/valor numa query bool do Elasticsearch.

Saída

Construtor de queries Elasticsearch

Cole uma lista de condições e esta ferramenta monta um pedido de pesquisa completo no Elasticsearch: uma query bool com os branches must, should, must_not e filter, mais ordenação, paginação e uma agregação opcional. É útil para quem escreve queries manualmente no Kibana Dev Tools, num cliente REST ou na camada de pesquisa de uma aplicação e prefere descrever as condições a redigitar o scaffolding JSON cada vez.

Cada condição é uma linha no campo Condições: um branch opcional (must, should, must_not, filter), um nome de campo, um tipo de condição opcional (term para uma correspondência exata, match para pesquisa full-text, range para comparações, exists para verificar se um campo está presente) e um valor — separados por pontos e vírgulas. "filter price range 100..500" constrói uma cláusula range; "should title match wireless headphones" constrói uma correspondência full-text numa frase; "must email exists" verifica se o campo está preenchido. Deixe o tipo em branco e a opção Tipo de condição padrão preenche-o; deixe o branch em branco e a opção Branch padrão faz o mesmo, portanto uma lista rápida como "status active; category electronics" ainda produz uma query válida.

O painel de opções cobre o resto de um pedido de pesquisa real: Campo de ordenação e ordem adicionam uma cláusula sort, Tamanho da página e Offset controlam a paginação from/size, e Agregação ativa um bucket terms ou date_histogram num campo à sua escolha. Realçar correspondências adiciona um bloco highlight para qualquer condição match, e Versão da linguagem de query alterna track_total_hits, disponível apenas a partir do Elasticsearch 7 em diante.

Tudo corre no seu navegador — as condições que digita e a query que resulta nunca são enviadas para lado nenhum. Copie o resultado diretamente para o Kibana Dev Tools ou um corpo de pedido, descarregue como ficheiro .txt, ou envie a saída de volta para a entrada para continuar a refinar.

FAQ

Como escrevo uma condição?
Uma linha por condição, separadas por pontos e vírgulas: um branch opcional, o nome do campo, um tipo de condição opcional, depois o valor — por exemplo "must status term active; filter price range 100..500".
O que significam term, match, range e exists?
term faz uma correspondência exata num campo, match pesquisa texto completo, range compara um campo com limites (escreva "min..max", "min..", "..max", ou ">=5"), e exists apenas verifica se o campo está presente — nenhum valor necessário.
O que acontece se deixar o branch ou tipo em branco?
As opções Branch padrão e Tipo de condição padrão preenchem qualquer parte que uma linha omita, portanto uma linha simples "field value" ainda produz uma condição válida.
A query funciona com todas as versões do Elasticsearch?
A query bool, ordenação, paginação, agregações e realce estão estáveis desde o Elasticsearch 6. A opção Versão da linguagem de query muda apenas um detalhe: track_total_hits, que foi introduzido no Elasticsearch 7 e é omitido para uma query 6.x.
Os dados da minha query são enviados para algum lado?
Não. A query é construída inteiramente no seu navegador a partir das condições e opções que introduz — nada é enviado para um servidor.