query - Elasticsearch filtro multi term
elasticsearch query not match (1)
Debes usar bool filter
para AND
todos tus términos:
"query":{
"filtered": {
"query": {
"query_string": {
"query":"*tom*",
"default_operator": "OR",
"fields": ["username"]
}
},
"filter": {
"bool" : {
"must" : [
{"term" : { "isActive" : "1" } },
{"term" : { "isPrivate" : "0" } },
{"term" : { "isOwner" : "1" } }
]
}
}
}
}
Soy bastante nuevo en Elasticsearch, así que aquí está mi pregunta. Quiero hacer una consulta de búsqueda con elasticsearch y quiero filtrar con varios términos.
Si quiero buscar un usuario ''tom'', me gustaría tener todas las coincidencias donde el usuario ''isActive = 1'', ''isPrivate = 0'' y ''isOwner = 1''.
Aquí está mi consulta de búsqueda
"query":{
"filtered": {
"query": {
"query_string": {
"query":"*tom*",
"default_operator": "OR",
"fields": ["username"]
}
},
"filter": {
"term": {
"isActive": "1",
"isPrivate": "0",
"isOwner": "1"
}
}
}
}
Cuando uso 2 términos, funciona como un encanto, pero cuando uso 3 términos, no.
¡¡Gracias por la ayuda!!