No entanto, podemos aplicar filtros para diminuir e maximizar os documentos relevantes retornados de uma consulta.
Este guia aprenderá como aplicar condições em uma consulta de pesquisa de pesquisa para filtrar resultados mais precisos da consulta.
Filtrar por termo
Podemos usar o termo consulta para filtrar os resultados em uma consulta. Por exemplo, a consulta abaixo filtra documentos onde o nome da cidade é Nova York.
Get /kibana_sample_data_ecommerce /_search
"consulta":
"bool":
"Filtro": [
"termo":
"Geoip.City_name ":" Nova York "
]
Na consulta de exemplo acima, usamos um filtro booleano para procurar documentos que correspondam ao City_Name como “Nova York.”
O resultado de exemplo para isso é:
Vários termos
Você também pode corresponder a documentos que correspondem a dois ou mais termos. Por exemplo, podemos consultar registros onde o tipo = ordem e região = “Nova York”
Get /kibana_sample_data_ecommerce /_search
"consulta":
"bool":
"Filtro": [
"termo":
"Tipo": "Ordem"
,
"termo":
"Geoip.região_name ":" Nova York "
]
Nesse exemplo, tanto o tipo quanto o geoip.Region_name Fields deve avaliar verdadeiro com o termo pesquisado.
Exemplo de resultado:
Filtro de alcance
Para filtrar por um valor numérico, você pode usar condições booleanas. Por exemplo, para filtrar os resultados em que o preço do produto é maior que 1000, podemos fazer:
Get /kibana_sample_data_ecommerce /_search
"consulta":
"bool":
"Filtro": [
"faixa":
"produtos.preço base":
"GTE": 1000
]
A consulta acima deve filtrar os documentos em que o BASE_PRICE dos itens é maior ou igual a 1000.
Aqui estão alguns resultados de exemplo:
Filtrar por frase
Suponha que você apenas se lembre de uma frase específica e não queira buscar todos os documentos no índice? Você pode usar o deve e match_phrase para restringir os resultados.
Por exemplo, e se apenas queremos colocar os produtos na categoria masculina, mas não tivermos certeza de todos os tipos específicos? Podemos executar uma consulta como:
Get /kibana_sample_data_ecommerce /_search
"consulta":
"bool":
"deve": [
"match_phrase":
"produtos.categoria ":" masculino "
]
No exemplo acima, usamos o booleano para garantir que a frase correspondente corresponda à especificada.
Abaixo estão os resultados do exemplo:
Não deve filtrar
Também podemos usar o filtro Must_Not para remover todos os documentos que contêm uma frase ou alcance específico. Por exemplo, para excluir todos os documentos em que a data de compra é segunda -feira, podemos fazer:
Get /kibana_sample_data_ecommerce /_search
"consulta":
"bool":
"Não deve": [
"corresponder":
"Day_of_week": "Segunda -feira"
]
Exemplo Resultados Retornar documentos que não contêm o dia_of_week como segunda -feira.
Conclusão
Este guia discutiu os resultados do Elasticsearch de filtragem usando condicional booleano, como faixa, deve e mais.