2017-06-16 4 views
0

Ich versuche, einen Weg zu finden, auf Useragent Kibana analysieren 5.3, so konnte ich die folgende Antwort erhalten:Lucene Syntax auf ELK 5.3

"aws-sdk-java/1.11.76 Mac_OS_X/10.12.5" 
"aws-sdk-java/1.11.78 Mac_OS_X/10.11.2" 
"aws-sdk-java/1.11.80 Mac_OS_X/10.10.1" 
"aws-sdk-java/1.11.83 Mac_OS_X/10.12.2" 
"aws-sdk-java/1.10.33 Mac_OS_X/10.12.3" 

etc ..

Ich habe versucht, mit? Zahlen für Nummernbereiche

{ 
    "query": { 
    "match": { 
     "userAgent": { 
     "query": "aws-sdk-java/<0-100>.<0-100>.<0-100> Mac_OS_X/<0-100>.<0-100>.<0-100>", 
     "type": "phrase" 
     } 
    } 
    } 
} 

oder sogar mit *

{ 
    "query": { 
    "match": { 
     "userAgent": { 
     "query": "aws-sdk-java/*.*.* Mac_OS_X/*.*.*", 
     "type": "phrase" 
     } 
    } 
    } 
} 

Nichts, Kibana nie etwas finden, muss ich tun

{ 
    "query": { 
    "match": { 
     "userAgent": { 
     "query": "aws-sdk-java/?.??.?? Mac_OS_X/??.??.??", 
     "type": "phrase" 
     } 
    } 
    } 
} 

oder < 0-100> ersetzt werden:

{ 
    "query": { 
    "match": { 
     "userAgent": { 
     "query": "aws-sdk-java/*", 
     "type": "phrase" 
     } 
    } 
    } 
} 

und dann funktioniert es, aber ich möchte nicht den Rest der Zeichenfolge ausschließen müssen.

das Feld Useragent ist vom Typ String, er ist durchsuchbare und Analysierte. Kann mir jemand einen Hinweis geben, was ich vermisse? Danke

Antwort

1

Sie benötigen eine keyword Art von Unterfeld für Ihr userAgent Feld. Oder wenn Sie sich auf Elasticsearch verlassen haben, um Ihr Zeichenfolgenfeld it should have it by default zuzuordnen.

Nachdem Sie dieses keyword Feld hinzufügen, zum Beispiel wie folgt aus:

{ 
    "userAgent": { 
    "type" "text", 
    "fields": { 
     "keyword": { 
     "type": "keyword", 
     "ignore_above": 256 
     } 
    } 
    } 
} 

Sie diese Abfrage verwenden können:

{ 
    "query": { 
    "regexp": { 
     "userAgent.keyword": "aws-sdk-java/[0-9]+\\.[0-9]{2}\\.[0-9]{2} Mac_OS_X/[0-9]{2}\\.[0-9]{2}\\.[0-9]+" 
    } 
    } 
} 
+0

vielen Dank! Genau das, was ich brauchte – jthemovie