2017-04-25 2 views
0

Hier ist die Abbildung für dieses Feld:Wie suche ich nach einem "-" in einem Feldwert in kibana?

"username": { 
    "type": "text", 
    "norms": false, 
    "fields": { 
    "keyword": { 
     "type": "keyword" 
    } 
    } 
}, 

Ich habe ein Feld, das gelegentlich den Wert hat „-“: enter image description here

I „Filter für Wert“ geklickt und das ist die Filter es erstellt: enter image description here

Aber wenn ich suche nach diesem Wert sagt es keine Ergebnisse gefunden.

Wie entkomme ich dem "-"?

habe ich versucht, „\ -“ aber keine Würfel

Ich habe versucht, zu überprüfen, ob der Wert „existiert“, wie vorgeschlagen, aber dies gibt auch 0 Ergebnisse: enter image description here

Auch !(_exists_:"username") in der Kibana Suchleiste versucht, und dass gibt auch 0 Ergebnisse zurück.

Auch läuft (_exists_:"username") docs enthalten mit und ohne Wert für den Benutzernamen Feld

Ich habe auch versucht diese, die 0 Ergebnisse zurückgibt:

(_missing_:"username") 
+0

In Kibana '-' das Feld darstellt, hat keinen Wert in der Regel es null ist. Wenn Sie alle Dokumente durchsuchen wollen, die 'username' als' null' haben, können Sie 'exist' query verwenden. – avr

+0

Wie würde diese Abfrage aussehen? – red888

+0

'GET/_search { "Abfrage": { "Bool": { "must_not": { "existiert": { "Feld": "username" } } } } }' – avr

Antwort

1

Als Ihr username Feld text Typ ist und analysiert mit standard analyzer , der invertierte Index wird keine Token für username haben, wobei username.keyword von keyword Typ ist, wird es den genauen Wert - in invertierten Index haben.

Sie können es in den folgenden Arten suchen:

  1. Von Kibana Suchleiste:

    username.keyword: "-"

  2. Von Kibana Filter:

    { "term": { "username.keyword": "-" } }

  3. Von Sense-Plugin:

    GET _search { "query": { "term": { "username.keyword": "-" } } }

Verwandte Themen