Boolean, o una consulta de bool en Elasticsearch, es un tipo de búsqueda que le permite combinar condiciones utilizando condiciones booleanas.
Elasticsearch buscará el documento en el índice especificado y devolverá todos los registros que coinciden con la combinación de cláusulas booleanas.
Usando consultas booleanas, puede filtrar para parámetros más específicos, lo que le permite obtener resultados más precisos.
En este artículo, veremos cómo usar cuatro cláusulas booleanas disponibles en Elasticsearch: must, must_not, debería y filtrar.
Sintaxis general
La sintaxis general de una consulta booleana utilizada en Elasticsearch es:
Obtener _Search
"consulta":
"Bool":
"debe": [
],
"no debe": [
],
"debería": [
],
"Filtrar": [
]
No tienes que combinar todos los acontecimientos booleanos en una sola consulta. Puedes usar cada uno como unidad independiente.
Booleano debe
Digamos que tiene un índice que contiene weblogs. Podemos obtener los documentos donde el sistema operativo es una máquina de Windows. A continuación se muestra una consulta de ejemplo:
Get /kibana_sample_data_logs /_search
"consulta":
"Bool":
"debe": [
"término":
"máquina.OS ":
"Valor": "Gana"
]
Como se muestra en la respuesta de ejemplo, el resultado anterior debe devolver los valores donde el sistema operativo es Windows.
Boolean must_not
Del mismo modo, podemos usar la ocurrencia must_not para eliminar el término donde el sistema operativo es Windows.
Tome la consulta de ejemplo a continuación:
Get /kibana_sample_data_logs /_search
"consulta":
"Bool":
"no debe": [
"término":
"máquina.OS ":
"Valor": "Gana"
]
Esta consulta filtra todos los registros donde la máquina.El sistema operativo es una máquina de Windows. A continuación se muestra un resultado de ejemplo:
Filtro booleano
El booleano del filtro eliminará todos los documentos que no coinciden con la condición especificada.
Por ejemplo, podemos filtrar los registros donde el número de bytes es mayor que 1000.
Podemos ejecutar una consulta como se muestra a continuación:
Get /kibana_sample_data_logs /_search
"consulta":
"Bool":
"Filtrar": [
"rango":
"bytes":
"GTE": 10000
]
La respuesta debe incluir solo los documentos en los que el número de bytes es mayor que el valor establecido.
Respuesta de ejemplo:
También puede combinar un filtro con otros acontecimientos booleanos. Por ejemplo, primero buscamos documentos coincidentes en los que el sistema operativo sea ganado y luego filtramos el número de bytes superiores a 10000.
Obtenga kibana_sample_data_logs/_search
"consulta":
"Bool":
"debe": [
"término":
"máquina.OS ":
"Valor": "Gana"
],
"Filtrar": [
"rango":
"bytes":
"GTE": 10000
]
En este caso, primero obtenemos los documentos en los que el sistema operativo contiene el término "ganar". Luego usamos los resultados y el filtro para el número de bytes superiores a 10000.
Los documentos resultantes serán similares a los que se muestra a continuación:
Booleano debería
La aparición final booleana que puede usar es. El debería ser muy similar a Must, pero es menos estricto.
Obtenga kibana_sample_data_logs/_search
"consulta":
"Bool":
"debería": [
"fósforo":
"máquina.OS ":" OSX "
]
El ejemplo debe devolver los registros de la cadena "OSX" aparece en el campo OS.
Conclusión
En este artículo, aprendió a trabajar con la consulta booleana en los resultados de Elasticsearch y filtrar basados en condiciones específicas.