query - elasticsearch/kibana 4: campo existe, pero no es igual a un valor
elasticsearch search by field (2)
elasticsearch versión 1.4.5
kibana 4.1.1
logstash 1.5.2-1
¿Cómo estructurar una búsqueda en la pestaña Discover de kibana 4 que solo devuelve resultados si existe un campo pero no es igual a un valor específico?
Tengo algunos datos de registro de Apache en logstash y quiero devolver todas las entradas que tienen definido el status_code
pero no igual a 200. Por lo tanto, si los valores posibles son {indefinido, 200, 403, 404, 500, etc.} me gustaría ver todos variantes de errores 4xx y 5xx pero no mensajes donde el campo no está definido y no donde está establecido en 200.
He probado lo siguiente:
+status_code: (*) -status_code: (200)
((status_code: (*) AND NOT status_code: (200))
También veo referencias a consultas de curl de elasticsearch, pero no estoy seguro de cómo convertirlas en algo que pueda usar en la barra de búsqueda de kibana. Aquí hay un ejemplo:
{
"query": {
"constant_score": {
"filter": {
"bool": {
"must": {
"exists": {
"field": "status_code"
}
},
"must_not": {
"term": {
"status_code": ''200''
}
}
}
}
}
}
}
¡Gracias!
La consulta que estás buscando es esta:
_exists_:status_code AND NOT status_code:200
Este enlace muestra todo lo que admiten las consultas de cadena de consulta.
La respuesta anterior es exactamente lo que pedí, sin embargo, esto también puede ser útil:
status_code:[300 TO 600]