Abfrage sollte ich habe ein Feld gender
die drei Werte haben kann:Matching null in in Elasticsearch 2.3.0
- MALE
- WEIBLICHE
- null
Die Abbildung von gender
ist :
"gender": {
"type": "string",
"index": "not_analyzed"
}
Um null
zu entsprechen, folge ich this.
ich diese Abfrage verwendet, um die Dokumente zu erhalten mit gender
als null
:
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "gender"
}
}
}
}
}
Ich möchte eine should
Abfrage erstellen, so dass die Suchergebnisse der gender
Feld alle Dokumente zurückgeben könnte mit:
{
"query": {
"bool": {
"should": {
"bool": {
"should": [
{
"match": {
"gender": {
"query": "MALE",
"type": "boolean"
}
}
},
{
"match": {
"gender": {
"query": "FEMALE",
"type": "boolean"
}
}
}
],
"must_not": {
"exists": {
"field": "gender"
}
}
}
}
}
}
}
Die obige Abfrage gibt mir 0 Treffer. Wie soll ich die richtige Abfrage dafür erstellen?
Sie erhalten 0 Ergebnisse, weil Sie verwenden "Muss" mit "MALE" und "FEMALE" Werten. Es sollte "sollte" statt "muss" sein. Und ich verstehe nicht, was Sie mit 'must_not' und' exists' machen. –
Wie passe ich die Dokumente an, die 'gender' als' null' haben? Ich folgte [dies] (https://www.elastic.co/guide/en/elasticsearch/reference/2.3/query-dsl-exists-query.html#_literal_missing_literal_query) –
Was ist die Zuordnung für das Feld "Geschlecht" ? –