Monitoramentos
Tipos de consulta
- must: A consulta deve aparecer nos documentos retornados e contribui para a pontuação.
- filter: A consulta deve aparecer nos documentos retornados mas não contribui para pontuação. Filtros são executados antes das demais consultas reduzindo o escopo da busca.
- should: São opcionais mas aumentam a pontuação dos documentos. O Index utiliza a configuração de
match mínimo = 1
para evitar que consultas should isoladas retornem resultados inválidos. - must not: A consulta não deve aparecer nos documentos retornados pela busca.
Sintaxe das consultas
As consultas dos monitoramentos no sistema IndexBr utilizam a sintaxe "query string" do Elasticsearch para buscar artigos pelo conteúdo de seu título e texto.
Consultas são compostas por tokens e operadores.
Toda consulta de texto simples é interpretada como uma sequência tokens separados por espaços:
Tribunal de Justiça
Caso não haja operador especificado os tokens serão interligados com o operador padrão (OR
). Tornando a consulta anterior equivalente a:
Tribunal OR de OR Justiça
Matches: qualquer documento que contenha ao menos uma das três palavras
Com o uso de aspas ("
) é possível interpretar uma frase como um token único preservando a ordem das palavras durante a busca:
"Tribunal de Justiça"
Wildcards (Coringas)
?
para um caratere*
para zero ou mais caracters
Ex.: deputad?
Matches: deputado
, deputada
Ex.: flor*
Matches: flor
, florido
Busca por proximidade
O operador ~
permite busca de proximidade por distância de edição.
A distância de edição é definida pela quantidade de mudanças de um caracter para transformar um termo em outro. Essas mudanças podem incluir as seguintes operações:
- Trocar um caractere (gato → gado)
- Remover um caractere (preto → reto)
- Inserir um caractere (som → soma)
- Transpor dois caracteres adjacentes (apto → pato)
Ex.: gato~ pato~ orta~
O valor padrão de distância é de 2 caracteres
mas pode ser redefinido após o operador:
Ex.: gato~1
Quando aplicado a frases o operador ~
permite que as palavras apareçam separadas ou em ordem diferente nos resultados da busca. A distância de edição passa a ser relativa as palavras e não mais aos caracteres.
Ex.: "gato preto"~5
Matches: gato preto
, gato de rua preto
Nota: A busca por proximidade não pode ser usada em conjunto com wildcards
Boosting
O operador de boost ^
pode ser usado para aumentar a relevância de um termo.
Ex.: gato^2 preto
O valor padrão de impulsionamento é 1 mas pode ser definido como qualquer decimal positivo. Valores entre 0 e 1 reduzem a relevância.
O impulsionamento também pode ser aplicado a frases e grupos:
Ex.: "gato preto"^2
, (gato preto)^4
Operadores booleanos
Operadores suportados: OR
, AND
, NOT
Termos e operadores podem agrupados com o uso de parênteses:
Ex.: ("Ministério Público da Bahia" OR "MP-BA") AND Trânsito
Sintaxe alternativa
O Elasticsearch oferece uma sintaxe simplificada para expressar as relações booleanas baseada em prefixos:
+
para termos que devem aparecer na busca-
para termos que não devem aparecer na busca- termos sem prefixo utilizam o operador padrão (
OR
) e portanto são opcionais na busca
O exemplo anterior pode ser reescrito utilizando operadores prefixos:
Ex.: +("Ministério Público da Bahia" "MP-BA") +Trânsito
Busca excluindo o termo Trânsito
:
Ex.: +("Ministério Público da Bahia" "MP-BA") -Trânsito
Espaçamento
Os termos e frases podem ser separados por espaços ou quebras de linha sem qualquer prejúizo a semântica da consulta. A formatação fica a preferência do usuário:
+("Ministério Público da Bahia" "MP-BA") +Trânsito
ou
+("Ministério Público da Bahia"
"MP-BA")
+Trânsito