# Pesquisa por Números
Pesquisar em instâncias por campos que contêm números é muito semelhante a pesquisar por campos do tipo campo:palavra
. A principal diferença é que, quando procuramos por um intervalo de números, podemos utilizar os seguintes operadores:
operador | significado | sintaxe | exemplo |
---|---|---|---|
> | maior que | value:>50 | experimente (opens new window) |
>= | maior que ou igual a | value:>=50 | experimente (opens new window) |
< | menor que | value:<50 | experimente (opens new window) |
<= | menor que ou igual a | value:<=50 | experimente (opens new window) |
Quando pretendemos procurar por registos em que o valor de um campo corresponda exactamente a um determinado número, apenas precisamos de introduzir o nome do campo seguido pelo seu valor: campo:valor
ou, de acordo com o nosso exemplo, valor:50
.
O vídeo incluído em baixo explica como fazer pesquisas em campos numéricos com a ajuda dos operadores que referimos:
Se desejamos pesquisar por registos em que o valor de um campo insira num intervalo de números, existe uma alternativa muito mais fácil à pesquisa estruturada ou à inserção do termo AND
entre duas expressões numéricas (value:>=50 AND value :<1=00000)
- experimente aqui (opens new window). De facto, o ElasticSearch - o motor de pesquisa adoptado na plataforma CoB - também suporta uma sintaxe e mais manejável (opens new window) que é especialmente adequada a cenários de utilização envolvendo intervalos de números. Deste modo, podemos criar uma expressão de pesquisa capaz de encontrar o mesmo intervalo de números - todos os valores maiores ou iguais a 50 e menores que ou iguais a 100 000 - do seguinte modo:
value:[50 TO 100000]
- exemplo (opens new window).
A expressão é muito fácil de compreender: nome_do_campo:[número inicial TO número final]
.
Se não pretendemos que o número inicial ou o número final ou mesmo ambos sejam exibidos nos resultados de pesquisa, podemos substituir [
e/ou ]
por {
e/ou }
. Por exemplo, continuando com o nosso exemplo, se não desejássemos que o valor 50 aparecesse nos resultados de pesquisa mas ainda assim quiséssemos procurar por todos os campos com valores entre 51 a 100 00, teríamos que alterar a expressão para:
value:{50 TO 100000]
- exemplo (opens new window).
O mesmo princípio é aplicável ao valor 100 000:
value:[50 TO 1000000}
- exemplo (opens new window).
No caso de não desejarmos utilizar um número inicial ou final em específico, podemos substituí-lo por um asterisco - *
:
value:[50 TO *]
- exemplo (opens new window).value[* TO 100000]
- exemplo (opens new window).
Eis um vídeo prático de como tudo funciona: