morihend
(morihend)
July 19, 2019, 2:29pm
1
Hello,
I have a query ES that must search a null value in a field that is a date type in my BDD.
Logstash is my program that put datas in the ES.
Look at my query below. The problem is here : "DATE_FIN": null
{
"query": {
"bool": {
"must": [
{
"terms": {
"TYPE_DOCUMENT": [
"contrat",
"avenant"
]
}
},
{
"match": {
"STATUT": "ACTIF"
}
},
{
"match": {
"enreg": "1236259"
}
}
],
"should": [
{
"range": {
"DATE_FIN": {
"gte": "2019-07-19"
}
}
},
{
"term": {
"DATE_FIN": null
}
},
{
"range": {
"DATE_FIN": {
"lte": "0001-01-01"
}
}
}
],
"minimum_should_match": 1
}
}
}
The ES response is this one:
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "field name is null or empty"
}
],
"type": "illegal_argument_exception",
"reason": "field name is null or empty"
},
"status": 400
}.
How can I do ?
Thanks in advance for your response
dadoonet
(David Pilato)
July 19, 2019, 3:05pm
2
morihend
(morihend)
July 25, 2019, 2:51pm
3
Bonjour,
Je me permet d'écrire en français car on a l'air d’être des compatriotes.
Merci pour votre retour mais il me parait impossible de changer mon should en must_not pour tester si mon champ DATE_FIN est null.
Revoici mon code :
{
"query": {
"bool": {
"must": [
{
"terms":
{"TYPE_DOCUMENT": [ "contrat","avenant"]}
},
{
"match": { "STATUT": "ACTIF"}
},
{
"match": {"enreg": "1236259"}
}
],
"should": [
{
"range": { "DATE_FIN": { "gte": "2019-07-19"} }
},
{
"term": { "DATE_FIN": null}
},
{
"range": { "DATE_FIN": { "lte": "0001-01-01" }}
}
],
"minimum_should_match": 1
}
}
}
Avez vous une autre idée ?
Merci d'avance,
Bonjour @morihend
impossible n'est pas français:
Ne doit pas être confondu avec Impossible n'est pas anglais ou Impossible... pas français.
« Impossible n'est pas français » est une citation prêtée à Napoléon Ier. Au moins trois témoins directs attestent l'avoir entendu prononcer cette petite phrase.
En novembre 1808, Napoléon est en route pour prendre Madrid lors de la guerre d'Espagne. Son armée se trouve bloquée au pied de l'étroit col de Somosierra, dans la sierra de Guadarrama, par quatre batteries espagnoles et des tireurs embusqués qui...
Est-ce que cette combinaison retourne le résultat souhaité ?
"should": [
{
"range": { "DATE_FIN": { "gte": "2019-07-19"} }
},
{"bool":{"must_not":[{
"exists": { "field": "DATE_FIN"}
}]}},
{
"range": { "DATE_FIN": { "lte": "0001-01-01" }}
}
]
1 Like
system
(system)
Closed
August 22, 2019, 11:49pm
5
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.