Todos os produtos
Search
Central de documentação

OpenSearch:query clause

Última atualização: Oct 19, 2026

Descrição da cláusula

O recurso de consulta é a parte mais fundamental e indispensável de uma instrução de pesquisa. Ele define o conteúdo a ser pesquisado e o campo de índice correspondente. Você também pode especificar várias condições de consulta e as relações entre elas (AND \ OR \ ANDNOT \ RANK).

Por exemplo, é possível combinar os campos title e subject, ambos do tipo TEXT, para criar um índice compartilhado chamado default. Uma consulta no índice default recupera documentos nos quais o termo de consulta corresponde ao texto original do campo title ou do campo subject.

Se criar um índice separado chamado title_search para o campo title, uma consulta nesse índice só recuperará um documento se o termo de consulta corresponder ao texto original do campo title.

Descrição da sintaxe

Consulta simples

Sintaxe da consulta:

query=index_name:'query_term'^boost condition index_name:'query_term'^boost

  • index_name: as informações do índice, configure o esquema do índice e defina que a pesquisa por documentos contendo o termo de consulta seja feita nos campos source incluídos no campo de índice especificado.

  • query_term: o conteúdo a ser pesquisado.

  • boost: o peso do termo de consulta. O valor é do tipo int e varia de 0 a 99. Valor padrão: 99.

  • condition: especifique várias condições de consulta. As relações compatíveis são (), AND, OR, ANDNOT e RANK (devem estar em maiúsculas). A precedência, da menor para a maior, é: RANK, OR, AND, ANDNOT, ().

  • AND: a interseção de dois termos de consulta. Por exemplo, query=default:'phone' AND default:'bluetooth' pesquisa documentos que contêm "phone" e "bluetooth".

  • OR: a união de dois termos de consulta. Por exemplo, query=default:'phone' OR default:'bluetooth' pesquisa documentos que contêm "phone" ou "bluetooth".

  • ANDNOT: o conjunto de resultados para os quais a primeira consulta é satisfeita e a segunda não. Por exemplo, query=default:'phone' ANDNOT default:'bluetooth' pesquisa documentos que contêm "phone", mas não contêm "bluetooth".

  • RANK: o conjunto de resultados para os quais a primeira consulta é satisfeita e a segunda pode ou não ser satisfeita. Por exemplo, query=default:'phone' RANK default:'bluetooth' pesquisa documentos que contêm "phone", e esses documentos não necessariamente contêm "bluetooth". Essa sintaxe é usada principalmente em cenários em que alguns termos de consulta não afetam a recuperação, mas apenas a pontuação. No exemplo anterior, quando combinada com o cálculo de relevância de texto, os documentos que contêm "bluetooth" podem ser classificados em uma posição mais alta.

Consulta avançada

Vários termos de consulta compartilhando um nome de índice

Sintaxe da consulta:

query=index_name:'query_term'^boost | 'query_term'^boost

query=index_name:'query_term'^boost & 'query_term'^boost

O símbolo '|' indica uma relação OR entre vários termos de consulta, e '&' indica uma relação AND entre vários termos de consulta.

Consulta de frase

Sintaxe da consulta:

query=index_name:"query_term"^boost condition index_name:"query_term"^boost

Incluir o termo de consulta entre "" indica uma consulta de frase. Isso exige que os termos produzidos pela análise do termo de consulta sejam adjacentes em posição e apareçam na mesma ordem.

  • Se o termo de consulta estiver entre "", a consulta será uma consulta de frase. Isso exige que os termos produzidos pela análise do termo de consulta sejam adjacentes em posição e apareçam na mesma ordem.

  • Consultas de intervalo, incluindo análise de localização geográfica e análise numérica.

Consulta weakand

Sintaxe da consulta:

query=index_name:('query_term'||'query_term')^number

query=index_name:('query_term')^^number

Em cenários em que o termo de consulta é relativamente longo, uma consulta weakand retorna documentos que correspondem apenas a alguns dos termos. O número mínimo de termos que devem ser correspondidos é especificado na consulta. Especifique o número mínimo de termos correspondidos de duas maneiras: se a consulta já estiver tokenizada antes de ser enviada, use o símbolo '^' para especificar diretamente o número mínimo de termos correspondidos. Se o próprio motor executar a tokenização e o número de termos resultantes não for conhecido antecipadamente, use '^^' para especificar a proporção mínima de termos correspondidos. Para atender a cenários em que a tokenização produz um número muito grande de termos, o número aqui é expresso em milésimos. Ou seja, o número mínimo de termos correspondidos é o número de termos de consulta após a tokenização × number/1000.0, arredondado para cima.

O desempenho da consulta weakand fica entre o das consultas all-AND e all-OR. Quanto maior o número mínimo de termos correspondidos, melhor o desempenho da consulta.

Nota: o recurso de consulta weakand é desativado por padrão. Para usá-lo, entre em contato com o suporte técnico.

Consulta de localização geográfica

Sintaxe da consulta:

query=index_name:'SHAPE(ARGS...)'

SHAPE(ARGS...) pode ser um dos seguintes:

  • Ponto: point(LON LAT). Nota: LON indica a longitude e LAT indica a latitude, separadas por um espaço.

  • Círculo: circle(LON LAT,Radius). Nota: LON indica a longitude, LAT indica a latitude e Radius indica o raio em metros.

  • Retângulo: rectangle(minLON minLAT,maxLON maxLAT). Nota: para a latitude, maxY deve ser >= minY. Se estiverem invertidos, serão ajustados automaticamente. Para a longitude, o intervalo de minX a maxX é interpretado de oeste para leste. Se estiverem invertidos, o intervalo representado estará incorreto.

  • Polígono: polygon(LON1 LAT1,LON2 LAT2,LON3 LAT3,LON4 LAT4,...). O polígono pode ser convexo ou côncavo. O ponto inicial e o ponto final do polígono devem ser iguais. Duas arestas adjacentes não podem ser colineares. As arestas do polígono não podem se cruzar.

Nota:

  • O índice consultado deve ser um índice espacial.

  • A forma de consulta para um índice espacial deve estar entre aspas simples (''), por exemplo, query=spatial_index:'circle(130.0 10.0.1000.0)'.

  • As coordenadas dos pontos de linhas e polígonos são mapeadas em um mapa-múndi planificado para determinar a extensão das linhas e dos polígonos. A travessia do meridiano de 180 graus não é considerada. Os resultados da consulta de índices invertidos de localização são exatos. Os resultados da consulta de índices invertidos de linhas e polígonos precisam ser filtrados.

Consulta de intervalo numérico

Sintaxe da consulta:

query=index_name:(value1,value2]

value1 e value2 indicam os valores inicial e final do intervalo numérico. As consultas de intervalo numérico aceitam intervalos abertos e fechados. '(' indica um intervalo aberto e ']' indica um intervalo fechado.

Exemplos:

Consulta de intervalo aberto: query = price:(3.100) pesquisa dados em que 3<x<100.

Consulta de intervalo fechado: query = price:[3.100] pesquisa dados em que 3<=x<=100.

Consulta de intervalo semiaberto: query = price:(3.100] pesquisa dados em que 3<x<=100.

Nenhum valor inicial especificado: query=price:(, 100) pesquisa dados em que x<100.

Nota:

  • O índice consultado deve ser um índice de intervalo numérico.

  • Os valores devem ser inteiros. Valores de ponto flutuante não são compatíveis.

Consulta de data

Sintaxe da consulta:

query=index_name:(start_time,end_time]

A hora inicial e a hora final são carimbos de data/hora inteiros com precisão de milissegundos. Se a hora inicial não for especificada, a recuperação começará em 0. Se a hora final não for especificada, o padrão será 4102416000000 (o carimbo de data/hora em milissegundos para 2100-01-01 00:00). As consultas de data também aceitam intervalos abertos e fechados.

Nota:

  • O índice consultado deve ser um índice de data.

  • Os carimbos de data/hora devem ser inteiros com precisão de milissegundos. Valores maiores que 4102416000000 são processados como 4102416000000.