2016-05-03 25 views
2

Ich muss einen Bereichswert aus meinen Protokollen suchen, aber meine Regex funktioniert nicht in Kibana.Kibana Regex funktioniert nicht

/(took":[1-9][0-9][0-9][,])/g 

Inhalt:

{"real_time":"2016-05-03T10:02:13.360Z","content":{"delay":687,"updated":true,"searchItems":{"monitoring_id":"111354","params":{"pass":["111354"],"named":{"d":"2016-04-29|2016-04-30"},"action":"mentions","plugin":null,"controller":"api11","form":[],"url":{"url":"1.1\/mentions\/111354\/","publickey":"yn68FDuQ","time":"1462303544,8356","signature":"102ade1f6749e89be876fdb00a7b9ade","published_date":"2016-04-29|2016-04-30","ipp":"100","page":"14"},"isAjax":false},"source_ids":"","timestamp":"","pagination":"1300, 100","trackerId":"","onlyIds":[],"exceptIds":[],"timezone":"Brazil\/East"},"search":[{"index":"mentions_ro","type":"mention","from":1300,"size":100,"body":{"query":{"bool":{"must":[{"term":{"monitoring.id":"111354"}},{"range":{"published_at":{"gte":"1969-12-31T21:00:00-03:00","lte":"1969-12-31T21:00:00-03:00"}}}]}},"sort":{"published_at":{"order":"desc"}}},"fields":[]}],"response":{"took":500,"timed_out":false,"_shards":{"total":21,"successful":21,"failed":0},"hits":{"total":0,"max_score":null,"hits":[]}}}} 

Meine Regex funktioniert hier jedoch:

https://regex101.com/r/pV4mR7/1

Obs:

  • Ich habe bereits versucht, einige Zeichen zu entkommen
  • Wenn ich die Anfrage aussehen Elastic gesendet, verwendet Kibana eine Abfragezeichenfolge:

enter image description here

Irgendwelche Tipps?

+1

einfach die JSON analysieren. Keine Notwendigkeit für Regex hier. – Makoto

+0

Sie können etwas wie 'take: [100-999]' als Bereichsfilter verwenden. –

+0

Mein Inhalt ist eine Zeichenfolge, keine JSON-Datei – JoeLoco

Antwort

2

Nach ihrer documentation diesen Figuren sind immer Metazeichen und müssen entwertet werden, wenn man sie als Literale wollen:

. ? + * | { } [ ] () " \ 

Diese Zeichen Metazeichen unter bestimmten Modi sind:

@ & < > ~ # 

Sie don‘ t muss das Komma in eine Char-Klasse setzen.

Es sieht so aus, als könnten Sie die Regex nicht einfach in das Suchfeld werfen.

Kibana passt nur regexp über das _all Feld:

versuchen, "zu inspizieren" eines der Elemente auf Ihrer Seite, werden Sie sehen, dass _all Feld fest einprogrammiert ist:

"global": true, 
"facet_filter": { 
    "fquery": { 
    "query": { 
     "filtered": { 
     "query": { 
      "regexp": { 
      "_all": { 
       "value": "category: /pattern/" 

>https://github.com/elastic/kibana/issues/631

Versuchen Sie folgendes:

(took\":[1-9][0-9][0-9],) 

Ich bin nicht vertraut mit Elasticsearch oder Kibana, aber Ihre Abfrage kann am Ende wie folgt aussehen:

"regexp": { 
"_all": { 
    "value": "category: /(took\":[1-9][0-9][0-9],)/" 
} 
} 
+0

https://snag.gy/ec79UR.jpg – JoeLoco

+0

Ich escape [und], um Parser Fehler zu beheben, und die Suche gibt keine Ergebnisse zurück! – JoeLoco

+1

@JoeLoco Ich habe meinen Beitrag aktualisiert. Ich bin nicht vertraut mit Dingen, aber ich hoffe, Sie erkennen die Syntax, die sie vorschlagen, sollten verwendet werden. – Laurel